home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Information / THINK C Digest / 1992 / 92-07 < prev    next >
Text File  |  1995-12-31  |  106KB  |  3,020 lines

  1. 
  2. Path: ucivax!gateway
  3. From: rodrigo@cmsun.cmf.nrl.navy.mil
  4. Subject: PaintRect & FrameRect
  5. Message-ID: <9207011356.AA01328@cmsun.cmf.nrl.navy.mil>
  6. Newsgroups: fa.think-c
  7. Lines: 18
  8. Date: 1 Jul 92 13:56:39 GMT
  9.  
  10.  
  11. Im using TC5.0.2 and TCL 112. On a CGridSelector Im using
  12. PaintRect and FrameRect to fill some rects. I do this:
  13.  
  14.         PenNormal();
  15.         PenPat(gray);
  16.         PenMode(srcXor);
  17.         PaintRect(theBox);
  18.         PenNormal();
  19.  
  20. It turns out that on a MAC with a small screen (i.e, SE, Classic) the
  21. rect is not painted. However on a MAC II with BW screen or a color
  22. screen it gets painted. Anyone can think on a reason why this is
  23. happening??
  24. Thanks for your help.
  25.  
  26. rodrigo@cmsun.cmf.nrl.navy.mil
  27.  
  28. 
  29. 
  30. Path: ucivax!gateway
  31. From: rodrigo@cmsun.cmf.nrl.navy.mil
  32. Subject: hrct templates
  33. Message-ID: <9207011401.AA01585@cmsun.cmf.nrl.navy.mil>
  34. Newsgroups: fa.think-c
  35. Lines: 4
  36. Date: 1 Jul 92 14:01:29 GMT
  37.  
  38.  
  39. Anyone out there has a template for resources 'hrct' which are
  40. used to write ballon help. A place where to ftp will be fine too.
  41. Thanks.
  42. 
  43. 
  44. Path: ucivax!gateway
  45. From: nagel@ics.uci.edu (Mark Nagel)
  46. Subject: ARCHIVE: CMaster updates (1.05 and 1.06 -> 1.07)
  47. Message-ID: <25315.710002046@ics.uci.edu>
  48. Newsgroups: fa.think-c
  49. Reply-To: think-c-request@ics.uci.edu
  50. Lines: 74
  51. Date: 1 Jul 92 14:47:34 GMT
  52.  
  53.  
  54. Date: Mon, 29 Jun 1992 22:54:55 -0500
  55. From: "Erik A. Johnson" <johnsone@uxh.cso.uiuc.EDU>
  56. Subject: archive submission mac/think-c/compiler/think-c-cmaster-update105to107.hqx
  57.  
  58. Here is an updater for CMaster, 1.0.5->1.0.7.  All you need to do (after
  59. un-BinHex-ing, of course) is double-click on the application, it will
  60. prompt you (standard file dialog) for the CMaster file; when you hit
  61. return, it will update the CMaster file you chose.
  62.  
  63.  
  64. Erik A. Johnson        \    Internet: johnsone@uxh.cso.uiuc.edu     \       |
  65. ------------------------\    AmericaOnline: ErikAJ                   \    --+--
  66. Graduate Student         \--------------------------------------------\     |
  67. Aero/Astro Engineering    \  "Jesus said to him, 'I am the way, and    \    |
  68. University of Illinois at  \  the truth, and the life; no one comes to  \   |
  69.    Urbana-Champaign (UIUC)  \  the Father except through me.'" (Jn14:6)  \
  70.  
  71.  
  72. P.S. I am not an employee of Jersey Scientific and do not speak for them.
  73.      I'm only a satisfied custormer.  And as for the University of Illinois
  74.      ... they hardly know I exist -- I'm only a grad student!
  75.  
  76. ------------------------------------------------------------------------------
  77.  
  78. This UpdateMaker(tm) self-actuating file will convert a CMaster(r) 1.0.5 file
  79. to the current version, 1.0.7. This version has improved title bar drawing and
  80. reduced flashing when the "dirty" dot is added/deleted from the title, and
  81. addresses all reported bugs as of 6/10/92. All key equivalents now work as
  82. advertised when the ICON bar is permanently disabled. One new key equivalent
  83. allows you to jump to the matching brace/bracket/paren.
  84.  
  85. Jersey Scientific
  86. jersci@applelink.apple.com
  87.  
  88. [archived as: /mac/think-c-compiler/cmaster-105-107.hqx; 45K]
  89.  
  90. /*****************************************************************************/
  91.  
  92. Date: Mon, 29 Jun 1992 22:55:18 -0500
  93. From: "Erik A. Johnson" <johnsone@uxh.cso.uiuc.EDU>
  94. Subject: archive submission mac/think-c/compiler/think-c-cmaster-update106to107.hqx
  95.  
  96. Here is an updater for CMaster, 1.0.6->1.0.7.  All you need to do (after
  97. un-BinHex-ing, of course) is double-click on the application, it will
  98. prompt you (standard file dialog) for the CMaster file; when you hit
  99. return, it will update the CMaster file you chose.
  100.  
  101.  
  102. Erik A. Johnson        \    Internet: johnsone@uxh.cso.uiuc.edu     \       |
  103. ------------------------\    AmericaOnline: ErikAJ                   \    --+--
  104. Graduate Student         \--------------------------------------------\     |
  105. Aero/Astro Engineering    \  "Jesus said to him, 'I am the way, and    \    |
  106. University of Illinois at  \  the truth, and the life; no one comes to  \   |
  107.    Urbana-Champaign (UIUC)  \  the Father except through me.'" (Jn14:6)  \
  108.  
  109.  
  110. P.S. I am not an employee of Jersey Scientific and do not speak for them.
  111.      I'm only a satisfied custormer.  And as for the University of Illinois
  112.      ... they hardly know I exist -- I'm only a grad student!
  113.  
  114. ------------------------------------------------------------------------------
  115.  
  116. This UpdateMaker(tm) self-actuating file will convert a CMaster(r) 1.0.6 file
  117. to the current version, 1.0.7. This version has improved title bar drawing and
  118. reduced flashing when the "dirty" dot is added/deleted from the title, and
  119. addresses all reported bugs as of 6/10/92. All key equivalents now work as
  120. advertised when the ICON bar is permanently disabled. One new key equivalent
  121. allows you to jump to the matching brace/bracket/paren.
  122.  
  123. Jersey Scientific
  124. jersci@applelink.apple.com
  125.  
  126. [archived as: /mac/think-c-compiler/cmaster-106-107.hqx; 41K]
  127. 
  128. 
  129. Path: ucivax!gateway
  130. From: inei@dcs.gla.ac.uk (Nick Nei)
  131. Subject: How to change owner name resource (-16096)
  132. Message-ID: <23048.9207012052@dcs.glasgow.ac.uk>
  133. Newsgroups: fa.think-c
  134. Lines: 49
  135. Date: 1 Jul 92 20:52:40 GMT
  136.  
  137.  
  138. I am trying to write a System 7 extension that does what the
  139. Sharing Setup control panel does - set the Owner Name of
  140. the Macintosh.
  141.  
  142. I know it alters resource -16096 in the System.  But it must do
  143. more than that because my extension CANNOT MAKE THE CHANGE STAY.
  144. The System just reverts back to the old name.
  145.  
  146. I can prove this is the scenario using ResEdit:
  147.  
  148.     Alter ownername (resource -16096)
  149.     Open Sharing Setup - confirms change
  150.     Restart Macintosh
  151.     Old ownername returns!
  152.  
  153. My code is simply:
  154.  
  155. =============================================================================
  156.     StringHandle    ownername;
  157.     char        *target = "newname";
  158.     char        *tp;
  159.     int        pos;
  160.  
  161.     if ((ownername = GetString (-16096)) == NULL)
  162.         SysBeep (10);
  163.     else {
  164.         HLock (ownername);
  165.         HNoPurge (ownername);
  166.  
  167.         for (pos = 1, tp = target; *tp; (*ownername)[pos++] = *tp++)
  168.             ;
  169.         (*ownername)[0] = tp-target;
  170.  
  171.         ChangedResource (ownername);
  172.         WriteResource (ownername);
  173.         HPurge (ownername);
  174.         HUnlock (ownername);
  175.     }
  176.  
  177. =============================================================================
  178.  
  179. Is this correct?  I think it is because it works in System 6.  Can anyone
  180. tell me where System 7 is keeping the *REAL* ownername?
  181.  
  182. Mail:  Nick Nei, Computing Science Dept.,
  183.        Glasgow Univ., 17 Lilybank Gardens,
  184.        Glasgow G12 8QQ, UK.  Tel: (041) 339 8855 x 5457
  185. ARPA:  inei%uk.ac.glasgow.dcs@nsfnet-relay.ac.uk USENET: inei@cs.glasgow.uucp
  186. 
  187. 
  188. Path: ucivax!gateway
  189. From: TPZ4@icnucevm.cnuce.cnr.it (Rodolfo Cardarelli)
  190. Subject: Think-c mailing list
  191. Message-ID: <9207020020.aa09612@q2.ics.uci.edu>
  192. Newsgroups: fa.think-c
  193. Lines: 12
  194. Date: 2 Jul 92 07:20:12 GMT
  195.  
  196. Dear Mr. Nagel,
  197. this is to add my name to the think-c mailing list. Actually it wasn't
  198. clear to me whether this is the right e-mail address to send my request, I hope
  199. it works.
  200. I'm an old Mac user, but a brand new C and Think-c user. I already have
  201. several question, mainly arising from the fact that I use the new release of
  202. the compiler, and it looks that every book you can buy is based on release 4.0
  203. Anyway, I'd better wait to see if this request works fine, let me know every
  204. problem should arise, or if I chose the wrong procedure to became a member of
  205. the think-c mailing list (my address is TPZ4@ICNUCEVM.CNUCE.CNR.IT)
  206. Sincerely
  207.                                       Rodolfo Cardarelli
  208. 
  209. 
  210. Path: ucivax!gateway
  211. From: walshag@hermes.bc.edu (WALSHAG)
  212. Subject: RE: How to change owner name resource (-16096)
  213. Message-ID: <9207020935.aa22014@q2.ics.uci.edu>
  214. Newsgroups: fa.think-c
  215. Lines: 43
  216. Date: 2 Jul 92 16:35:30 GMT
  217.  
  218. > I am trying to write a System 7 extension that does what the
  219. > Sharing Setup control panel does - set the Owner Name of
  220. > the Macintosh.
  221. > I know it alters resource -16096 in the System.  But it must do
  222. > more than that because my extension CANNOT MAKE THE CHANGE
  223. > STAY.  The System just reverts back to the old name.
  224. > Can anyone tell me where System7 is keeping the REAL ownername?
  225.  
  226. The ownername for System 7 is also located in the "Users and Groups File",
  227. which is located in the Preferences folder (inside the System Folder).
  228.  
  229. When the Macintosh File Sharing program first accesses the "Users and Groups
  230. File" (boot time), it checks this file for an administrator user.  If the
  231. administrator user is NOT found in this file, the system creates one using the
  232. "owner name" found in System resource 'STR ' -16096.  If it DOES find the
  233. administrator user in the "Users and Groups File", it has no need to look at
  234. the System STR resource & in fact, if the administrator user and this STR do
  235. not match, the system will change the STR to be the same as the administrator
  236. user.
  237.  
  238.  Therefore, when you reboot after altering the System STR resource, the change
  239. does not appear to take effect since it still exists as the administrator user
  240. in the  "Users and Groups File".  You can verify this by alterting the System
  241. resource 'STR ' -16096 and then  *removing* the  "Users and Groups File" from
  242. the Preferences folder.   Now reboot and check "Sharing Setup".   Your changes
  243. should now appear there.
  244.  
  245. According to Apple, "once the administrator user is created, it cannot be
  246. deleted or renamed by means of UGLibrary [the users & groups programming api
  247. libraray]; it can only be renamed through the System 7 Sharing Setup control
  248. panel or by means of AppleShar Admin."
  249. This makes it sound like there is no official way of changing the
  250. owner/adminstartor unless you can figure out how Sharing Setup does it, then do
  251. it yourself.
  252.  
  253. Parting note:  You might need to call FlushVol after changing System
  254. strings....An FKEY I wrote required this call to make changes I made to System
  255. strings permanent after re-boot.
  256.  
  257. Hope this helps,
  258. Aaron Walsh
  259. Boston College, IPS
  260. walshag@bcvms.bc.edu
  261. 
  262. 
  263. Path: ucivax!gateway
  264. From: chuck@ksr.com
  265. Subject: TC stack usage - help
  266. Message-ID: <9207031719.AA17047@z8.ksr.com>
  267. Newsgroups: fa.think-c
  268. Lines: 45
  269. Date: 3 Jul 92 17:19:32 GMT
  270.  
  271.  
  272. After getting sys err 28 (stack overwrites the heap), I found that my stack
  273. grows much more then I'd expect.  I have traced it down to the following
  274. problem.  I wonder if NetLand can help.
  275.  
  276. I have a chain of recursive calls  A -> B -> C -> A etc.  The chain is not
  277. very deep.  I have found that most of those procedures are not pushing more
  278. then a few tens of bytes on the stack, except for one which pushes many
  279. thousands, and is causing my problem.
  280.  
  281. Call this procedure A().  A() looks like
  282.  
  283.    A(some args) {
  284.         int a,b,c;         // nothing spectacular here
  285.         :
  286.         :
  287.         if (something) {
  288.             int x[1000];   // here come bunch of large tmp arrays
  289.                            // followed by a code that uses them
  290.         }
  291.         :
  292.         B();               // here is the recursive call to B()
  293.                            // which will later call A().
  294.    }
  295.  
  296. What happens is that TC generates a code that allocates a stack frame big
  297. enough to hold ALL of A()'s local vars, even those in nested blocks.  In
  298. other words, declaring local vars in nested blocks serves only the
  299. syntactic purpose of name scoping, and has no semantic (i.e. run time)
  300. effect.
  301.  
  302. What I had expected is that the stack will grow when when I am inside the
  303. if(something) block, and will shrink back when I am out of it.  I thought
  304. that that is one of the purposes of curly braces - to allow you to use
  305. temporary space on the stack.
  306.  
  307. My questionss:
  308.    a. Does my prognosis make sense?
  309.    b. Does my complaint ("what I had expected" paragraph) make sense?
  310.    c. Is there some magic setting that tells TC to do what I want?
  311.  
  312. Thanks,
  313.  
  314. Chuck Shavit
  315. chuck@ksr.com
  316. 
  317. 
  318. Path: ucivax!gateway
  319. From: k044477@hobbes.kzoo.edu ("Jamie R. McCarthy")
  320. Subject: Re: TC stack usage - help
  321. Message-ID: <9207032021.AA19860@hobbes.kzoo.edu>
  322. In-Reply-To: <9207031719.AA17047@z8.ksr.com>; from "chuck@ksr.com" at Jul 3, 92 5:19 pm
  323. X-Mailer: ELM [version 2.3 PL11]
  324. Newsgroups: fa.think-c
  325. Lines: 38
  326. Date: 3 Jul 92 20:18:56 GMT
  327.  
  328. chuck@ksr.com writes:
  329. >
  330. > I have a chain of recursive calls  A -> B -> C -> A etc.  The chain is not
  331. > very deep.  I have found that most of those procedures are not pushing more
  332. > then a few tens of bytes on the stack, except for one which pushes many
  333. > thousands, and is causing my problem.
  334. >
  335. > What I had expected is that the stack will grow when when I am inside the
  336. > if(something) block, and will shrink back when I am out of it.  I thought
  337. > that that is one of the purposes of curly braces - to allow you to use
  338. > temporary space on the stack.
  339.  
  340. Interesting...I'd never thought of doing that.  I suppose that would
  341. make sense, though it would mean an extra two instructions every time
  342. you went in and out of braces that had local variables.
  343.  
  344. >    c. Is there some magic setting that tells TC to do what I want?
  345.  
  346. Nope.  Sorry.
  347.  
  348. You'll want to dynamically allocate your storage.  It's not much extra
  349. code, maybe something like:
  350.  
  351. A() {
  352.   /* stuff */
  353.   {
  354.     short *p, **h;
  355.     h = (Handle) NewHandle(1000);
  356.     ASSERT(h!=NULL);
  357.     p = *h; // no HLock necessary if you won't be moving memory
  358.     /* Here, use p[] as an array */
  359.     DisposHandle(h);
  360.   }
  361.   B();
  362. }
  363. --
  364.  Jamie McCarthy      Internet: k044477@kzoo.edu      AppleLink: j.mccarthy
  365.  Nobody reads signatures anyway.
  366. 
  367. 
  368. Path: ucivax!gateway
  369. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  370. Subject: TC stack usage - help
  371. Message-ID: <9207050240.AA10163@chaos.cs.brandeis.edu>
  372. In-Reply-To: chuck@ksr.com's message of 3 Jul 92 17:19:32 GMT <9207031719.AA17047@z8.ksr.com>
  373. Newsgroups: fa.think-c
  374. Lines: 33
  375. Date: 5 Jul 92 02:41:40 GMT
  376.  
  377. >>>>> On 3 Jul 92 17:19:32 GMT, chuck@ksr.com said:
  378.  
  379.  > What happens is that TC generates a code that allocates a stack
  380.  > frame big enough to hold ALL of A()'s local vars, even those in
  381.  > nested blocks.  In other words, declaring local vars in nested
  382.  > blocks serves only the syntactic purpose of name scoping, and has
  383.  > no semantic (i.e. run time) effect.
  384.  
  385. This is typical of most C and C++ compilers; they effectively collapse
  386. all local automatic definitions into a single stack adjustment that
  387. occurs when the function is entered. OTOH, the C semantics don't
  388. provide any way of referring to a local auto that's outside of the
  389. current scope, so I suppose a compiler could implement it in the way
  390. that you describe (taking the address of an auto doesn't count).
  391. Combining the stack adjusts does provide for smaller and faster code,
  392. though.
  393.  
  394.  > What I had expected is that the stack will grow when when I am
  395.  > inside the if(something) block, and will shrink back when I am out
  396.  > of it.  I thought that that is one of the purposes of curly braces
  397.  > - to allow you to use temporary space on the stack.
  398.  
  399. This is more similar to the C++ feature where objects that are local
  400. to a scope are automatically created and destroyed by the compiler.
  401. This is not possible with THINK C objects, since you can't have
  402. value-based objects or stack-based objects, except without a lot of
  403. extra work.
  404.  
  405.     -phil
  406. ----
  407.    Phil Shapiro                                   Software Engineer
  408.    Language Products Group                     Symantec Corporation
  409.            Internet: phils@cs.brandeis.edu
  410. 
  411. 
  412. Path: ucivax!gateway
  413. From: iain@vision.rs.ch (Iain Campbell)
  414. Subject: Async calls in 'Comms Tool Box'
  415. Message-ID: <9207051321.aa22288@q2.ics.uci.edu>
  416. Newsgroups: fa.think-c
  417. Lines: 28
  418. Date: 5 Jul 92 20:21:48 GMT
  419.  
  420.  
  421. Does anyone have experience using the asynchronous form of the
  422. Communications Toolbox routines?
  423.  
  424. I've had no problems with the synchronous calls, but strange problems with
  425. the async ones.  Basically the routines fail to read data and return
  426. (sometimes!!).  I'm not sure if it's a problem with the particular Modem
  427. Tools I'm using, or if it's my misunderstanding of "Inside the Mac Comms
  428. Tool Box".
  429.  
  430. My problems are a little vague, so rather than waste mailing-list space I'd
  431. appreciate it if you would email me direct and I'll explain in more detail.
  432.  
  433. Of course, I'll summarise and post any useful info to the list.
  434.  
  435.  
  436. Thanks in advance,
  437.  
  438. Iain.
  439.  
  440. ===========================================================================
  441. Iain Campbell                                        iain@vision.rs.ch
  442. Radio Schweiz AG                                     iain@dcs.glasgow.ac.uk
  443. Laupenstrasse 18a
  444. 3008 Bern                                            Tel: +41 (0)31 509 855
  445. Switzerland                                          Fax: +41 (0)31 509 675
  446. ===========================================================================
  447.  
  448. 
  449. 
  450. Path: ucivax!gateway
  451. From: nick@dcs.ed.ac.uk (Nick Rothwell)
  452. Subject: Re: Async calls in 'Comms Tool Box'
  453. Message-ID: <9207061400.aa09032@dcs.ed.ac.uk>
  454. Newsgroups: fa.think-c
  455. Lines: 14
  456. Date: 6 Jul 92 13:02:47 GMT
  457.  
  458. >Does anyone have experience using the asynchronous form of the
  459. >I've had no problems with the synchronous calls, but strange problems with
  460. >the async ones.  Basically the routines fail to read data and return
  461. >(sometimes!!).  I'm not sure if it's a problem with the particular Modem
  462. >Tools I'm using, or if it's my misunderstanding of "Inside the Mac Comms
  463. >Tool Box".
  464.  
  465. One possible "gotcha" that I came across: be sure to call the CTB's idle
  466. routine (I've forgotten what it's called) periodically, or otherwise
  467. various "open" calls won't return. I *think* I've had async comms working,
  468. but I might be mistaken - it could have been sync. stuff.
  469.  
  470. Nick.
  471.  
  472. 
  473. 
  474. Path: ucivax!gateway
  475. From: siegel@world.std.com (Rich Siegel)
  476. Subject: Announcing Programmer's Editor Package
  477. Message-ID: <9207061758.AA02839@world.std.com>
  478. Newsgroups: fa.think-c
  479. Lines: 39
  480. Date: 6 Jul 92 17:59:04 GMT
  481.  
  482.  
  483. PEP - The Programmer's Editor Package
  484.  
  485. The Programmer's Editor Package (PEP) is a collection of library modules
  486. designed to provide for easier implementation of text-editing applications.
  487. PEP consists of the following modules:
  488.  
  489.     -   a high-performance, line-oriented text engine which supports files as
  490.         large as can fit in RAM, with a 32-bit upper bound on the number of
  491.         lines in a text file, and a 32-bit upper bound on the number of
  492.         characters in a text file. The editing engine provides for
  493.         consistently fast typing performance, no matter how large the file,
  494.         and no matter where the typing occurs.
  495.  
  496.     -   a RAM-based search engine for locating literal strings of characters
  497.         within a designated region of memory.
  498.  
  499.     -   a RAM-based search engine for locating strings of characters based
  500.         on matches with a regular expression ("grep searching").
  501.  
  502.     -   a disk-based engine for recursively traversing HFS directory
  503.         structures, as well as generating a list of files which match
  504.         a file name pattern.
  505.  
  506.     -   a sample text editor which illustrates the basic functionality
  507.         of all of these modules.
  508.  
  509. PEP is 32-bit clean, VM compatible, and compatible with System releases 5.0
  510. and later.
  511.  
  512. PEP is for use with the THINK C and THINK Pascal compilers; it can be used
  513. with version 3.0 and later of THINK C, and version 2.0 and later of THINK
  514. Pascal.
  515.  
  516. PEP is available now. Upgrade pricing is available for users of the
  517. Symantec CAPPS package. For pricing and availability information, send e-mail
  518. to siegel@world.std.com.
  519.  
  520. THINK C, THINK Pascal, and CAPPS are trademarks of Symantec Corporation.
  521. 
  522. 
  523. Path: ucivax!gateway
  524. From: chuck@ksr.com
  525. Subject: Announcing Programmer's Editor Package
  526. Message-ID: <9207062059.AA24032@z8.ksr.com>
  527. In-Reply-To: Rich Siegel's message of 6 Jul 92 17:59:04 GMT <9207061758.AA02839@world.std.com>
  528. Newsgroups: fa.think-c
  529. Lines: 12
  530. Date: 6 Jul 92 20:59:37 GMT
  531.  
  532.  
  533. Dear Rich,
  534.  
  535. I'd like to obtain info re pricing and availablity of PEP.  If I will use
  536. PEP, I would incorporate it in a shareware (or commercial if I'm lucky)
  537. product, so the pricing should cover an unlimited use of PEP by my
  538. software.
  539.  
  540. Thanks,
  541.  
  542. Chuck Shavit
  543. chuck@ksr.com
  544. 
  545. 
  546. Path: ucivax!gateway
  547. From: francis@csli.stanford.edu (Liquid Sky)
  548. Subject: Think C for large projects?
  549. Message-ID: <CMM.0.90.2.710464970.francis@Csli.Stanford.EDU>
  550. Newsgroups: fa.think-c
  551. Lines: 16
  552. Date: 6 Jul 92 23:25:08 GMT
  553.  
  554.  
  555. We are currently deciding on a development environment for our next
  556. generation of software and require that it support object oriented
  557. programming in C. We have used MPW with a macro-based object system
  558. previously but find it lacking for the new venture. We are considering Think
  559. C and MPW MacApp C++ but don't quite know how they stack up to one
  560. another. the MPW environment. Some of the things we do know include
  561. it's inablility to handle multiple inheritance, no source code
  562. revision control tools and others. How complete is the implementation
  563. of Think C's C++ extensions? Has anyone ever done a study between the
  564. two to make such a decision? What are the key points worth considering?
  565.  
  566. Thanks,
  567. Dave Francis
  568. Digital F/X
  569. francis@csli.stanford.edu
  570. 
  571. 
  572. Path: ucivax!gateway
  573. From: slosser@mindseye.berkeley.edu (Eric Slosser)
  574. Subject: Announcing Programmer's Editor Package
  575. Message-ID: <9207070506.AA16189@mindseye.berkeley.edu>
  576. In-Reply-To: Rich Siegel's message of 6 Jul 92 17:59:04 GMT <9207061758.AA02839@world.std.com>
  577. Newsgroups: fa.think-c
  578. Lines: 9
  579. Date: 7 Jul 92 05:08:02 GMT
  580.  
  581. What! No interface to PopUpFunc-tionality in PEP?
  582.  
  583. And I thought that was the coolest feature of them all!
  584.  
  585. Eric Slosser,
  586.  
  587. single parent of PopUpFuncs,
  588. the cool utility with the doofy name.
  589.  
  590. 
  591. 
  592. Path: ucivax!gateway
  593. From: TPZ4@icnucevm.cnuce.cnr.it (Rodolfo Cardarelli)
  594. Subject: Mac Programmer's primer
  595. Message-ID: <9207080036.aa18436@q2.ics.uci.edu>
  596. Newsgroups: fa.think-c
  597. Lines: 43
  598. Date: 8 Jul 92 07:36:39 GMT
  599.  
  600. I'M TRYING TO LEARN TO PROGRAM IN THINK-C USING MAC PROGRAMMER'S
  601. PRIMER BOOK. UNFORTUNATELY IT LOOKS IT HAS BEEN WRITTEN FOR PREVIOUS
  602. RELEASES OF THE COMPILER (I USE V 5.0.2 UPGRADED), THAT IS SOME PROGRAMS
  603. DON'T WORK. IN PARTICULAR THE PROGRAM EVENTTUTOR HAD PROBLEMS WITH ROUTIN
  604. ES LIKE BEGINUPDATE, BUT MIKE RUHL SUGGESTED ME TO FIX IT WITH A CAST
  605. TO (WINDOWPTR) AND THAT WORKED (THANKS MIKE). NOW IT LOOKS THERE ARE PROB
  606. LEMS IN LOADING RESOURCES. THE PIECE OF CODE IS SOMETHING LIKE THAT
  607. ( I OMIT OTHER DECLARATION TO NOT WASTE SPACE)
  608.  DEFINE BASE_RES_ID   400    /* THE POUND SIGN IS NOT AVAILABLE ON THIS*/
  609.  DEFINE NIL_POINTER   (PTR) 0 /* MACHINE SO I OMITTED THEM, BUT ON MY */
  610.  DEFINE MOVE_TO_FRONT (WINDOWPTR) -1 /*MAC OF COURSE THEY ARE PRESENT */
  611.  
  612.  WINDOWPTR    GPICTWINDOW,GEVENTWINDOW  /* ALSO SEMICOLON ARE MISSING..*/
  613.  .
  614.  .
  615.  .
  616.  MAIN()
  617.  
  618.  TOOLBOXINIT()  /*USUAL INITIALIZATION*/
  619.  WINDOWINIT()
  620.  .
  621.  .
  622.  .
  623.  WINDOWINIT()  /* HERE'S THE FUNCTION WHICH GIVES PROBLEMS */
  624.  
  625.  GPICTWINDOW=GETNEWWINDOW(BASE_RES_ID,NIL_POINTER,MOVE_TO_FRONT)
  626.  GEVENTWINDOW=GETNEWWINDOW(BASE_RES_ID+1,NIL_POINTER,MOVE_TO_FRONT)
  627.  SETPORT(GEVENTWINDOW)
  628.  SHOWWINDOW(GEVENTWINDOW)
  629.  SELECTWINDOW(GEVENTWINDOW)
  630.  
  631.  WELL, I HOPE IT'S CLEAR (THIS MACHINE HAS ONLY CAPITALS LETTERS, NO
  632. COLONS, POUND SIGN....). ANYWAY AFTER THE CALL TO GETNEWWINDOW, THE
  633. ADDRESS OF GPICTWINDOW REMAINS 0X000000, AND AFTER THE CALL TO SETPORT
  634. ALSO THE GLOBAL VARIABLE THEPORT IS SET TO 0X000000, THAT IS NOTHING
  635. HAPPENS...
  636. ANOTHER SIMILAR PROGRAM, MONDRIAN, WITH THE SAME PIECE OF CODE, WORKS FIN
  637. E. I CHECKED THE RESOURCE FILE, AND IT SEems  OK, AT LEAST ACCORDING TO
  638. THE BOOK. OK, I THINK I WASTE ENOUGH OF YOUR SPACE AND PATIENCE. IS THERE
  639. ANYBODY OUTTHERE WHO COULD HELP ME? IS THERE ANYONE WHO ALREADY DEBUGGED
  640. THE MAC PROGRAMMER'S PRIMER TO ADAPT IT TO THINK-C 5.0.2?
  641. THANKS EVERYBODY
  642. RODOLFO CARDARELLI
  643. 
  644. 
  645. Path: ucivax!gateway
  646. From: MICRO2.KEMPF@crvax.sri.com ()
  647. Subject: How To Control Apple Serial NB Card (Q)
  648. Message-ID: <9819500.637128000.MICRO2.KEMPF@CRVAX.SRI.COM>
  649. Newsgroups: fa.think-c
  650. Reply-To: MICRO2.KEMPF@crvax.sri.com
  651. Lines: 9
  652. Date: 10 Jul 92 15:11:57 GMT
  653.  
  654.      I have an application which uses the printer and modem ports to control
  655. serial devices.  I now have a serial NB card and would like for the card to
  656. take over the control so I can use the printer and modem ports for their normal
  657. functions.  Does anyone have software which will do this?  Any help would be
  658. greatly appreciated.  I am using TC 5.0.2.  Thanks
  659. Jim Kempf
  660. MICRO2.KEMPF@CRVAX.SRI.COM
  661.  
  662.  
  663. 
  664. 
  665. Path: ucivax!gateway
  666. From: bobm@imagine.convex.com (Bob Miller)
  667. Subject: Programming System 7: is it good?
  668. Message-ID: <9207102042.AA10373@imagine.convex.com>
  669. Newsgroups: fa.think-c
  670. X-Quote-Of-The: C++ also supports the notion of *friends*: cooperative
  671.                 classes that are permitted to see each other's private parts.
  672.                                         -- Grady Booch
  673. Organization: The GrapE-ics Lab
  674. Lines: 5
  675. Date: 10 Jul 92 20:42:53 GMT
  676.  
  677. Has anyone used the book Programming System 7?
  678.  
  679. What do you think of it?  Is it worth $24.95 of your own lunch money?
  680.  
  681.                     K<bob>
  682. 
  683. 
  684. Path: ucivax!gateway
  685. From: yjc@po.cwru.edu
  686. Subject: Gestalt Glue.
  687. Message-ID: <9207110741.AA18312@pop.CWRU.Edu>
  688. Newsgroups: fa.think-c
  689. Lines: 6
  690. Date: 11 Jul 92 07:41:28 GMT
  691.  
  692. Gestalt Glue.
  693.  
  694. What does it do? I've only seen references on two pages in the Think
  695. Manuals. Can someone shed some light?
  696.  
  697.  
  698. 
  699. 
  700. Path: ucivax!gateway
  701. From: jgarner@u.washington.edu (Jeffery Garner)
  702. Subject: Re: Programming System 7: is it good?
  703. Message-ID: <Pine.3.00.9207110439.A12107-a100000@hardy.u.washington.edu>
  704. In-Reply-To: <9207102042.AA10373@imagine.convex.com>
  705. Content-Type: TEXT/PLAIN; charset=US-ASCII
  706. Mime-Version: 1.0
  707. Newsgroups: fa.think-c
  708. Lines: 27
  709. Date: 11 Jul 92 12:00:15 GMT
  710.  
  711.  
  712. One of the very best programming books I ever invested in!"!!!
  713. EXCELLENT examples, plus a full-blown awesome shell called Skeleton!
  714. There's no better way to start learning Sys7!  I've written a term,
  715. new FileIO programs, and lots of AppleEvent code, thanks to that one book.
  716.  
  717. Well, the birds have started to sing, so I guess it means it's time to hit
  718. the sack... hmm.. only 7 hours til noon...  :-)
  719.  
  720. Jeff Garner
  721. Shoestring Software Products
  722.  
  723. {Will Apple name their new RISC Macs "Pippin?"   (Apples, Macs, Newtons,
  724. Pippins)  And I remember a certain burrfooted short hobbit named Pipin...
  725. Didn't he always munch on Apples in his travels?  :-)
  726.  
  727.  
  728.  
  729. On 10 Jul 1992, Bob Miller wrote:
  730.  
  731. > Has anyone used the book Programming System 7?
  732. >
  733. > What do you think of it?  Is it worth $24.95 of your own lunch money?
  734. >
  735. >                     K<bob>
  736.  
  737.  
  738. 
  739. 
  740. Path: ucivax!gateway
  741. From: ferrante@aaec1.aaec.com
  742. Subject: Re: Programming System 7: is it good?
  743. Message-ID: <9207131152.AA21141@aaec.com>
  744. Newsgroups: fa.think-c
  745. Lines: 10
  746. Date: 13 Jul 92 12:01:20 GMT
  747.  
  748. I found it had the easiest explanation of how to add balloon help to dialog
  749. boxes. Save me a lot of time
  750. ---
  751. Richard D. Ferrante
  752. Atlantic Aerospace Electronics Corporation
  753. 470 Totten Pond Road
  754. Waltham, Ma. 02154
  755. (617) 890-4200
  756. ferrante@aaec.com
  757.  
  758. 
  759. 
  760. Path: ucivax!gateway
  761. From: rodrigo@cmf.nrl.navy.mil
  762. Subject: GrowMemory method is never called in CApplication
  763. Message-ID: <9207131301.AA08639@cmsun.cmf.nrl.navy.mil>
  764. Newsgroups: fa.think-c
  765. Lines: 15
  766. Date: 13 Jul 92 13:01:54 GMT
  767.  
  768.  
  769. My app is crashing my Mac when it runs out of heap space. I have
  770. been monitoring the heap with SWATCH (great utility BTW) and in theory
  771. the system should call GrowZoneFunc which in turns will call
  772. GrowMemory which in turns calls Memory***** (I forgot the name right now)
  773. which I override to display an alert informing the user that
  774. memory is low and windows must be closed and doc must be saved. Also
  775. here I unable the commands New and Open.
  776.  
  777. Somehow GrowMemory is never called. Any ideas why this is happening?
  778.  
  779. Something I should do?
  780.  
  781. Thanks.
  782.  
  783. 
  784. 
  785. Path: ucivax!gateway
  786. From: FLC3527@tamxrd.tamu.edu (Trey Campbell)
  787. Subject: SetDialogTracksCursor
  788. Message-ID: <920708120131.20800467@TAMXRD.TAMU.EDU>
  789. Newsgroups: fa.think-c
  790. Lines: 15
  791. Date: 13 Jul 92 14:28:10 GMT
  792. X-Vmsmail-To: SMTP%"think-c@ics.uci.edu"
  793.  
  794. Hi, all!
  795.  
  796. A while back I remember some discussion of the undocumented new traps that are
  797. part of the System 7 Dialog Manager. I've had no trouble getting
  798. SetDialogDefaultItem and SetDialogCancelItem to work as advertised, but I have
  799. not been able to get the third call, SetDialogTracksCursor, to work. I'm using
  800. the following definition:
  801.  
  802. pascal OSErr SetDialogTracksCursor(DialogPtr theDialog, Boolean tracks) =
  803.     {0x303C, 0x0306, 0xAA68};
  804.  
  805. Has anybody been able to make this thing work? Or do I have a flaw hidden
  806. somehwere in it? Thanks in advance for any suggestions.
  807.  
  808. Trey Campbell, Texas A&M University
  809. 
  810. 
  811. Path: ucivax!gateway
  812. From: wadew@ducvax.auburn.edu (Wade Williams)
  813. Subject: Can't open file error
  814. Message-ID: <9207131504.AA10895@accs.duc.auburn.edu>
  815. Newsgroups: fa.think-c
  816. Lines: 22
  817. Date: 13 Jul 92 15:03:42 GMT
  818.  
  819. Here's a perplexing one:
  820.  
  821. I'm trying to run a THINK C 5.0 project.  It runs fine, but when I try to
  822. examine any of my variables, I get the message (in the Data window) "**
  823. can't open file "ResEd.c""  That file is my source code file.
  824.  
  825. What's even more interesting is if I haven't touched the variables in the
  826. data window (ie. they're still in their saved state), the variables still
  827. evaluate correctly.  But, if I remove a variable, then type in the exact
  828. same thing, I get the "can't open file" message.
  829.  
  830. If it helps, I've been moving this project file from home to work everyday.
  831.  I move the project file, the source code and the resource file.  This is
  832. the first trouble I've had though.  Anyone have any ideas what's happening?
  833. -------------------------------------------------------------------
  834. Wade Williams                        "One likes to believe in the freedom
  835. User Services Specialist          of music, but glittering prizes and
  836. Academic Computing Services    endless comprimises shatter the
  837. Auburn University                 illusion of integrity."
  838. wadew@ducvax.auburn.edu                          (N. Peart of Rush)
  839. --------------------------------------------------------------------
  840.  
  841. 
  842. 
  843. Path: ucivax!gateway
  844. From: David.M.Tillinghast@dartmouth.edu
  845. Subject: DES encryption code
  846. Message-ID: <1177510@blitzen.Dartmouth.EDU>
  847. Newsgroups: fa.think-c
  848. Lines: 16
  849. Date: 13 Jul 92 16:50:34 GMT
  850.  
  851. Hi, I'm new to this list, but I looked through the archived correspondence.
  852. In it I found a short thread on DES encryption code (someone was asking if
  853. anyone could send him some examples to play with).
  854.  
  855. Whatever came of this? Was it ever posted anywhere? Is DES encryption code
  856. technology  limited in distribution by the government?
  857.  
  858. I'd really like to see it. I've always been fascinated with encryption
  859. schemes.
  860.  
  861. -tig tillinghast@dartmouth.edu
  862.  
  863. PS: I'm a red-blooded American with no ties to the Communist party, Fidel
  864. Castro, Muammar Quadafi or even Jerry Brown. I promise I won't endanger
  865. national security by allowing foreignors to encrypt their electronically
  866. stored recipes and letters.
  867. 
  868. 
  869. Path: ucivax!gateway
  870. From: wadew@ducvax.auburn.edu (Wade Williams)
  871. Subject: RE: Can't open file error
  872. Message-ID: <9207131718.AA11041@accs.duc.auburn.edu>
  873. Newsgroups: fa.think-c
  874. Lines: 20
  875. Date: 13 Jul 92 17:17:16 GMT
  876.  
  877. >think c is very picky about paths to files.  if the path name on your
  878. >home machine is different than the path on your work machine, you can
  879. >run into this trouble.
  880. >
  881. >                            -andre.
  882.  
  883. That was it exactly.  I fixed it simply by "Remove Objects" then reloading
  884. everything.  Why I didn't think of that in the first place, I'll never
  885. know.
  886.  
  887. My apologies to everyone.  I should have solved that on my own.
  888.  
  889. -------------------------------------------------------------------
  890. Wade Williams                        "One likes to believe in the freedom
  891. User Services Specialist          of music, but glittering prizes and
  892. Academic Computing Services    endless comprimises shatter the
  893. Auburn University                 illusion of integrity."
  894. wadew@ducvax.auburn.edu                          (N. Peart of Rush)
  895. --------------------------------------------------------------------
  896.  
  897. 
  898. 
  899. Path: ucivax!gateway
  900. From: bobm@imagine.convex.com (Bob Miller)
  901. Subject: code organization in an INIT
  902. Message-ID: <9207131735.AA12128@imagine.convex.com>
  903. Newsgroups: fa.think-c
  904. X-Quote-Of-The: Thompson, if he is to be believed, has sampled the entire
  905.             rainbow of legal and illegal drugs in heroic efforts to feel
  906.             better than he does.
  907.                 As for the truth about his health: I have asked around about
  908.             it.  I am told that he appears to be strong and rosy, and steadily
  909.             sane.  But we will be doing what he wants us to do, I think, if we
  910.             consider his exterior a sort of Dorian Gray facade.  Inwardly, he
  911.             is being eaten alive by tinhorn politicians.
  912.                 The disease is fatal.  There is no known cure.  The most we
  913.             can do for the poor devil, it seems to me, is to name his disease
  914.             in his honor.  From this moment on, let all those who feel that
  915.             Americans can be as easily led to beauty as to ugliness, to truth
  916.             as to public relations, to joy as to bitterness, be said to be
  917.             suffering from Hunter Thompson's disease.  I don't have it this
  918.             morning.  It comes and goes.
  919.                 This morning I don't have Hunter Thompson's disease.
  920.                                         -- Kurt Vonnegut, Jr.
  921. Organization: The GrapE-ics Lab
  922. Lines: 47
  923. Date: 13 Jul 92 17:35:26 GMT
  924.  
  925. [ BTW, thanks for all the responses on Programming Sys. 7.  Since
  926.   nearly everyone likes it, I guess I'll buy it next time I'm in a
  927.   store. ]
  928.  
  929. I am writing an INIT (which may soon be a cdev).  I have many
  930. questions.
  931.  
  932. The init has two parts, an initialization section and an always-loaded
  933. section.  It's in THINK C, with maybe 50 lines of assembler.  The
  934. initialization section creates some data structures, patches some
  935. traps, and exits.  The always-loaded section handles those traps.
  936.  
  937. The reason it's two sections is to save memory after it loads.
  938.  
  939. The initialization section has to know several addresses inside the
  940. other section.  It has to know the addresses of five trap handlers and
  941. about ten global variables.
  942.  
  943. I'm thinking that it would be grand if the INIT could be built as two
  944. segments linked together, then the first segment could force the
  945. second to load into the system heap and not .
  946.  
  947. Is "multi-segment code resource" an oxymoron?
  948.  
  949. Do INITs have their own heaps or do they always run in the system
  950. heap?  (I mean when the INIT is loaded, not when the patched traps are
  951. called.)
  952.  
  953. How would a program go about forcing another segment to load, in the
  954. system heap, and becoming a detached resource?  Would it just be this?
  955.  
  956.     typdef struct jmp_table {
  957.         short jmp_opcode;
  958.         long absolute_address;
  959.     } *JMPPTR;
  960.  
  961.     SetZone(SystemZone());
  962.     any_routine_in_segment();
  963.     h = RecoverHandle(((JMPPTR) any_routine_in_segment)->absolute_address);
  964.     DetachResource(h);
  965.     SetZone(previous zone);
  966.  
  967. Any light, opinions, or flames appreciated.
  968.  
  969. Thanks.
  970.  
  971.                     K<bob>
  972. 
  973. 
  974. Path: ucivax!gateway
  975. From: ephraim@think.com (Ephraim Vishniac)
  976. Subject: Re: Can't open file error
  977. Message-ID: <9207131850.AA27036@leander.think.com>
  978. In-Reply-To: Your message of "13 Jul 92 15:03:42 GMT."
  979.              <9207131504.AA10895@accs.duc.auburn.edu>
  980. Newsgroups: fa.think-c
  981. Lines: 23
  982. Date: 13 Jul 92 18:50:45 GMT
  983.  
  984.  
  985.    Date:  13 Jul 92 15:03:42 GMT
  986.    From:  Wade Williams <wadew@ducvax.auburn.edu>
  987.  
  988.    Here's a perplexing one:
  989.  
  990.    I'm trying to run a THINK C 5.0 project.  It runs fine, but when I try to
  991.    examine any of my variables, I get the message (in the Data window) "**
  992.    can't open file "ResEd.c""  That file is my source code file.
  993.  
  994.    What's even more interesting is if I haven't touched the variables in the
  995.    data window (ie. they're still in their saved state), the variables still
  996.    evaluate correctly.  But, if I remove a variable, then type in the exact
  997.    same thing, I get the "can't open file" message.
  998.  
  999.    If it helps, I've been moving this project file from home to work everyday.
  1000.     I move the project file, the source code and the resource file.  This is
  1001.    the first trouble I've had though.  Anyone have any ideas what's happening?
  1002.  
  1003. I'm just guessing, but try going to the Make dialog and hitting the
  1004. Use Disk button. I believe this forces Think C to go and find
  1005. everything on disk, updating its beliefs about where things are.
  1006.  
  1007. 
  1008. 
  1009. Path: ucivax!gateway
  1010. From: franklin@eecs.ucdavis.edu (Paul Franklin)
  1011. Subject: Re: DES encryption code
  1012. Message-ID: <9207140031.AA21457@aspen.eecs.ucdavis.edu>
  1013. In-Reply-To: Your message of "13 Jul 92 16:50:34 GMT."
  1014.              <1177510@blitzen.Dartmouth.EDU>
  1015. Newsgroups: fa.think-c
  1016. Reply-To: pdfranklin@ucdavis.edu
  1017. Lines: 39
  1018. X-Mts: smtp
  1019. Date: 14 Jul 92 00:31:32 GMT
  1020.  
  1021.  
  1022. Your message dated: 13 Jul 92 16:50:34 GMT
  1023. >Whatever came of this? Was it ever posted anywhere? Is DES encryption code
  1024. >technology  limited in distribution by the government?
  1025.  
  1026. I'll try to answer all of these.  It is, and has been, posted in
  1027. Finland.  I would like to suggest that someone else get it and post
  1028. it here in the US.  I have a copy (I lived in Norway and got it then),
  1029. so anyone willing to ask me for it to post can have it, but I don't
  1030. know of an appropriate place to post it.  The code is Mac-compatible,
  1031. but no more; the main reason it checks for the Macintosh is it needs
  1032. to resolve some byte/bit-ordering issues so the fact that it's running
  1033. on a 680x0 is important.  The code is excellent, as far as I can tell;
  1034. I glanced through most of it.  So, if anyone knows of a good general
  1035. archive, I'll post it.  If I see strong interest, I'll convert it to
  1036. Mac format (.sit.hqx) from Unix (.tar.Z) and post it here, but I'm not
  1037. sure it's that appropriate, particularly when the server at Irvine where
  1038. think-c lives is short on space.
  1039.  
  1040. I don't know if it's illegal to export DES code, but the specifications
  1041. are widely known and the code was written in Finland, so the US can't
  1042. really restrict it (except maybe to restrict _importation_ of it, which
  1043. doesn't make a whole lot of sense).
  1044.  
  1045. In summary, I think it's a valuable thing to post, so if anyone has a
  1046. good place to post it, and no one ccomes up with a legal objection, I'll
  1047. post it.
  1048.  
  1049. In addition, I have implemented a _simple_ version of DES
  1050. in plain C; it is just a skeleton and just does one code word (64 bits) at
  1051. a time.  However, it is also very easy to understand.  It was implemented
  1052. here in Norway for a class, but it's an intersting technical point, since
  1053. I'm a US citizen, an exchange student from the University of California.
  1054. Anyways, I'm still willing to share.  The package includes a short
  1055. writeup covering issues we dealt with (or didn't), including easy ways to
  1056. make it more efficient.  If anyone's interested in this version instead,
  1057. I'll consider posting it as well.
  1058.  
  1059. --Paul Franklin
  1060. 
  1061. 
  1062. Path: ucivax!gateway
  1063. From: Per.Mildner@csd.uu.se (Per Mildner)
  1064. Subject: DES encryption code
  1065. Message-ID: <199207141102.AA11342@meryl.csd.uu.se>
  1066. In-Reply-To: David.M.Tillinghast@dartmouth.edu's message of 13 Jul 92 16:50:34 GMT <1177510@blitzen.Dartmouth.EDU>
  1067. Newsgroups: fa.think-c
  1068. X-Charset: ASCII
  1069. Lines: 8
  1070. Date: 14 Jul 92 11:02:26 GMT
  1071. X-Char-Esc: 29
  1072.  
  1073.  
  1074. There are several public domain DES implementations available by ftp.
  1075. Use archie if you can, or use comp.compression FAQ. If this means
  1076. nothing to you I can give more info.
  1077. Regards,
  1078. Per Mildner            perm@CSD.UU.SE
  1079. Computing Science Dept.        tel: +46 18181049
  1080. Uppsala University, Sweden    fax: +46 18521270
  1081. 
  1082. 
  1083. Path: ucivax!gateway
  1084. From: Per.Mildner@csd.uu.se (Per Mildner)
  1085. Subject: DES encryption code
  1086. Message-ID: <199207141108.AA11392@meryl.csd.uu.se>
  1087. In-Reply-To: Paul Franklin's message of 14 Jul 92 00:31:32 GMT <9207140031.AA21457@aspen.eecs.ucdavis.edu>
  1088. Newsgroups: fa.think-c
  1089. X-Charset: ASCII
  1090. Lines: 8
  1091. Date: 14 Jul 92 11:08:22 GMT
  1092. X-Char-Esc: 29
  1093.  
  1094. I believe exporting DES and similar stuff FROM the US to be illegal,
  1095. even if the stuff was imported from some other country in the first
  1096. place. There are archives outside the US that carries a multitude of
  1097. DES implementations.
  1098. Regards,
  1099. Per Mildner            perm@CSD.UU.SE
  1100. Computing Science Dept.        tel: +46 18181049
  1101. Uppsala University, Sweden    fax: +46 18521270
  1102. 
  1103. 
  1104. Path: ucivax!gateway
  1105. From: iom@dsunx1.dsrd.ornl.gov (MIKOLIC-TORREI I)
  1106. Subject: DES algorithms....
  1107. Message-ID: <9207141405.AA00879@dsunx1.DSRD.ORNL.GOV>
  1108. Newsgroups: fa.think-c
  1109. Lines: 23
  1110. Date: 14 Jul 92 14:05:54 GMT
  1111.  
  1112.  
  1113. The DES algorithm can be found in the book Numerical Recipies in C (and
  1114. probably in the Fortran/Pascal verions--I only have the C version).
  1115. About 3 years ago (well, somewhere between 2 and 5 years ago), Scientific
  1116. American had an excellent series of article on DES in the back sectin
  1117. entitled Mathematical/Computer Recreations by Dewendy (the name and title
  1118. are probably slightly off).  Those articles remain the BEST exposition of
  1119. DES that I've seen in the open literature to date.  Highly recommended.
  1120. Note that there was a mistake in one of the articles and the errata didn't
  1121. show up until a few issues afterwards--and it's a fairly serious mistake
  1122. in one of the tables.
  1123.  
  1124. The algorith in Nuerical Recipies isn't a particularly good implementation, but
  1125. you can follow it from there and right your own.
  1126.  
  1127. Note also that to be a "certified" DEencryption, the algorithm MUST be
  1128. implemented in HARDWARE.  FUrthermore I beleive (but am not a legal type)
  1129. I believe that the restriction on exports applies only to hardware
  1130. implementing DES encryption.
  1131.  
  1132. Igor Mikolic-Torreira
  1133. iom@dsunx1.dsrd.ornl.gov
  1134.  
  1135. 
  1136. 
  1137. Path: ucivax!gateway
  1138. From: dac@sactoh0.sac.ca.us ("David A. Carlton")
  1139. Subject: Mailing Lists
  1140. Message-ID: <a687a6fa@sactoh0.sac.ca.us>
  1141. X-Mailer: Fernmail 1.1
  1142. Newsgroups: fa.think-c
  1143. Reply-To: dac@sactoh0.sac.ca.us
  1144. Organization: Poly Micro Systems
  1145. Lines: 8
  1146. Date: 14 Jul 92 14:16:07 GMT
  1147.  
  1148. Can anyone tell me if and where a mailing list exists for the Think
  1149. Class Library and Think Pascal.
  1150.  
  1151. Thanks,
  1152. ---
  1153. Dave Carlton
  1154. dac@sactoh0.sac.ca.us
  1155.  
  1156. 
  1157. 
  1158. Path: ucivax!gateway
  1159. From: umdenbo0@ccu.umanitoba.ca ("David A. Denboer")
  1160. Subject: Programming Sys 7 book
  1161. Message-ID: <9207142004.AA22914@ccu.UManitoba.CA>
  1162. Newsgroups: fa.think-c
  1163. Lines: 7
  1164. Date: 14 Jul 92 20:04:40 GMT
  1165.  
  1166. Does anyone have the ISBN# and authors for this book, so I can go out and
  1167. order it?
  1168.  
  1169. Thanks,
  1170. David A. denBoer
  1171. umdenbo0@CCU.UManitoba.CA
  1172. Musi Computer Products
  1173. 
  1174. 
  1175. Path: ucivax!gateway
  1176. From: zkessin@chaos.cs.brandeis.edu (Zach Kessin)
  1177. Subject: SMTP mail (mac TCP)
  1178. Message-ID: <9207142142.AA04431@chaos.cs.brandeis.edu>
  1179. Newsgroups: fa.think-c
  1180. Lines: 17
  1181. Date: 14 Jul 92 21:42:15 GMT
  1182.  
  1183.  
  1184. I am trying to write a SMTP mail program on the mac, If anyone has
  1185. some source code that they could send me (or just a good description
  1186. of the standard would help too).
  1187.  
  1188. THINK C code would be best, MPW would be usable too however.
  1189.  
  1190. Thanks in advance!
  1191.  
  1192. --Zach
  1193.    Zachary Kessin
  1194.  ZKessin@chaos.cs.brandeis.edu  / Time and tide melts the snowman
  1195.  (617)736-7218                 /   --The Doctor 'Time and the Rani'
  1196.  
  1197.  
  1198.  
  1199.  
  1200. 
  1201. 
  1202. Path: ucivax!gateway
  1203. From: MRUHL@azcc.arizona.edu (The sky is ecstasy dancing)
  1204. Subject: RE: SMTP mail (mac TCP)
  1205. Message-ID: <920714162755.270003a2@AZCC.Arizona.EDU>
  1206. Newsgroups: fa.think-c
  1207. Lines: 23
  1208. Date: 15 Jul 92 00:38:15 GMT
  1209. X-Vmsmail-To: SMTP%"fa.think-c-outbound-request@ics.uci.edu"
  1210.  
  1211. % I am trying to write a SMTP mail program on the mac, If anyone has
  1212. % some source code that they could send me (or just a good description
  1213. % of the standard would help too).
  1214.  
  1215.  
  1216. A description of the SMTP standard can be found by anonymous ftp at
  1217.  
  1218. telcom.arizona.edu
  1219.  
  1220. in the [rfc.800] directory
  1221.  
  1222. Get file RFC821.txt
  1223.  
  1224. This is the complete SMTP protocol. :)
  1225.  
  1226. Good Luck.
  1227.  
  1228.  
  1229. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1230. Mike Ruhl
  1231. Operator
  1232. Arizona Cancer Center
  1233. mruhl@azcc.arizona.edu
  1234. 
  1235. 
  1236. Path: ucivax!gateway
  1237. From: C2MXBAR@fre.towson.edu (AARON BARNETT)
  1238. Subject: copyrights
  1239. Message-ID: <01GMEHTFGHDE8ZE2XH@TOE.TOWSON.EDU>
  1240. Content-transfer-encoding: 7BIT
  1241. MIME-version: 1.0
  1242. Newsgroups: fa.think-c
  1243. X-VMS-To: TOE::IN%"think-c@ics.uci.edu"
  1244. Lines: 4
  1245. Date: 15 Jul 92 13:17:40 GMT
  1246. X-Envelope-to: think-c@ics.uci.edu
  1247.  
  1248. I have just written my first piece of software that I feel is net-
  1249. distributable.  How do I get a copyright.
  1250. Aaron
  1251. c2mxbar@fre.fsu.umd.edu
  1252. 
  1253. 
  1254. Path: ucivax!gateway
  1255. From: resnick@cogsci.uiuc.edu (Pete Resnick)
  1256. Subject: Re: copyrights
  1257. Message-ID: <199207151457.AA24140@tarski.cogsci.uiuc.edu>
  1258. X-Mailer: Eudora [version 1.3a44 MacTCP]
  1259. Newsgroups: fa.think-c
  1260. Lines: 12
  1261. Date: 15 Jul 92 14:57:51 GMT
  1262.  
  1263. >I have just written my first piece of software that I feel is net-
  1264. >distributable.  How do I get a copyright.
  1265.  
  1266. You write somewhere in the software (probably your 'vers' resource) and in
  1267. your documentation "Copyright 1992 Aaron Barnett". You're done. Actually,
  1268. you always "had" the copyright; writing that in the software and docs just
  1269. reminds others of this fact. So long as you announce to the world that this
  1270. code is your own, noone else has the right to copy it except as expressed
  1271. by you. That's all there is to it legally.
  1272.  
  1273. pr
  1274.  
  1275. 
  1276. 
  1277. Path: ucivax!gateway
  1278. From: k044477@hobbes.kzoo.edu ("Jamie R. McCarthy")
  1279. Subject: Re: copyrights
  1280. Message-ID: <9207151535.AA21509@hobbes.kzoo.edu>
  1281. In-Reply-To: <01GMEHTFGHDE8ZE2XH@TOE.TOWSON.EDU>; from "AARON BARNETT" at Jul 15, 92 1:17 pm
  1282. X-Mailer: ELM [version 2.3 PL11]
  1283. Newsgroups: fa.think-c
  1284. Lines: 23
  1285. Date: 15 Jul 92 15:33:01 GMT
  1286.  
  1287. Aaron Barnett writes:
  1288. > I have just written my first piece of software that I feel is net-
  1289. > distributable.  How do I get a copyright.
  1290.  
  1291. Put the following notice in a conspicuous place:
  1292.  
  1293. (c) Copyright 1992 by Aaron Barnett.  All Rights Reserved.
  1294.  
  1295. Ta-da, it's copyrighted.  The last three words even protect your
  1296. copyright in other countries that honor our copyright laws, or so
  1297. I hear.
  1298.  
  1299. If you think you might get taken to court someday, you can minimize your
  1300. court costs by registering your copyright with the government.  (The
  1301. case will be really quick if you can pull out the official documents.
  1302. If you don't register, you're still protected, don't worry.)  To get all
  1303. the information about how to do this, write the Library of Congress and
  1304. ask them for their info-packet on How To Copyright Computer Software.
  1305. --
  1306.  Jamie McCarthy      Internet: k044477@kzoo.edu      AppleLink: j.mccarthy
  1307.  If you learn nothing else from Usenet, learn this:  "a case can be made"
  1308.  means _nothing_.  Every fallacious, cockeyed idea has its proponents,
  1309.  who will make their rickety, hole-ridden case to anyone who will listen.
  1310. 
  1311. 
  1312. Path: ucivax!gateway
  1313. From: inei@dcs.glasgow.ac.uk (Nick Nei)
  1314. Subject: Someone please help me translate this pascal code to C...
  1315. Message-ID: <17137.9207151803@dcs.glasgow.ac.uk>
  1316. Newsgroups: fa.think-c
  1317. Lines: 35
  1318. Date: 15 Jul 92 18:03:34 GMT
  1319.  
  1320.  
  1321. Dear gentle THINK-C programmers,
  1322.  
  1323.     I am trying to translate a THINK-Pascal source INIT which restarts
  1324. the mac at a specified time.  It uses the (old) Time Manager, but there
  1325. is some code which doesn't make much sense to me:
  1326.  
  1327.     (* This gets some separately compiled code which reboots the mac *)
  1328.     myhandle := getnamedresource ('CODE', 'Reboot');
  1329.     codesize := gethandlesize (myhandle);
  1330.  
  1331.     (*  OK, This is the part that puzzles me... *)
  1332.     BufPtr := Pointer ($10C);
  1333.     BufPtr^ := Pointer (ord(BufPtr^) - (codesize + 100));
  1334.  
  1335.     tmptr := Pointer (ord(BufPtr^) + 2);
  1336.     if odd(ord(tmptr)) then
  1337.         tmptr := Pointer(ord(tmptr) + 1);
  1338.  
  1339.     ourcodeptr := Pointer(ord(BufPtr^) + 50);
  1340.     if odd(ord(ourcodeptr)) then
  1341.         ourcodeptr := Pointer(ord(ourcodeptr) + 1);
  1342.  
  1343.     (* end of stuff that baffles me! *)
  1344.  
  1345.     BlockMove (myhandle^, ourcodeptr, codesize);
  1346.  
  1347. Can any gurus illuminate (or better translate!) this for me!  I have a feeling
  1348. this is detailed in some tech note but where is it?  Mac programming is
  1349. REALLY arcane!!
  1350.  
  1351. Mail:  Nick Nei, Computing Science Dept.,
  1352.        Glasgow Univ., 17 Lilybank Gardens,
  1353.        Glasgow G12 8QQ, UK.  Tel: (041) 339 8855 x 5457
  1354. ARPA:  inei%uk.ac.glasgow.dcs@nsfnet-relay.ac.uk USENET: inei@cs.glasgow.uucp
  1355. 
  1356. 
  1357. Path: ucivax!gateway
  1358. From: bobm@imagine.convex.com (Bob Miller)
  1359. Subject: Re: copyrights
  1360. Message-ID: <9207151521.AA04040@imagine.convex.com>
  1361. In-Reply-To: Your message of "15 Jul 92 13:17:40 GMT."
  1362.              <01GMEHTFGHDE8ZE2XH@TOE.TOWSON.EDU>
  1363. Newsgroups: fa.think-c
  1364. X-Quote-Of-The: Ada is PL/I trying to be Smalltalk.  -- Codoso diBlini
  1365. Lines: 27
  1366. Date: 15 Jul 92 18:38:30 GMT
  1367.  
  1368. > I have just written my first piece of software that I feel is net-
  1369. > distributable.  How do I get a copyright.
  1370. > Aaron
  1371. > c2mxbar@fre.fsu.umd.edu
  1372.  
  1373. Just do it.
  1374.  
  1375. There is no centralized registry of copyrighted works or anything,
  1376. so you can copyright something merely by putting a copyright notice
  1377. on it.
  1378.  
  1379. A proper copyright notice contains the following elements.
  1380.  
  1381.     the word "Copyright",
  1382.     the year,
  1383.     the copyright owner (you),
  1384.     and the string "All rights reserved."
  1385.  
  1386. If you want to put restrictions on redistribution or use, you can do
  1387. that by specifying the restrictions with the copyright.  (This is kind
  1388. of vague; tell us what restrictions you want, if any.)
  1389.  
  1390. This message is copyright 1992, Robert N. Miller.  All rights
  1391. reserved.  May be freely redistributed, in whole or in part, so long
  1392. as this copyright notice remains attached.
  1393.  
  1394.                     K<bob>
  1395. 
  1396. 
  1397. Path: ucivax!gateway
  1398. From: dedreb@arco.com
  1399. Subject: BitmapToRegion Glue Routine
  1400. Message-ID: <9207151842.AA16140@Arco.COM>
  1401. Newsgroups: fa.think-c
  1402. Lines: 14
  1403. Date: 15 Jul 92 18:42:28 GMT
  1404.  
  1405. I need to use BitmapToRegion routine in a 6.0.x/7.0 application.  As I
  1406. understand, I'll have to use glue for compatibility with 6.0.x systems
  1407. (perhaps those not running with 32-bit QD? I can't remember).  Anyway, how
  1408. do I use the BitmapToRegionGlue routine?  I tried including the appropriate
  1409. header file and calling either BitmapToRegion or BitmapToRegionGlue
  1410. depending on whether I the application was running under System 7 or 6.0.x,
  1411. but I keep getting a link error.  Incidentally, both MacTraps and MacTraps2
  1412. libraries are in my project.
  1413.  
  1414. I'd really appreciate your help.  Thanks in advance.
  1415.  
  1416. Richard Beecher
  1417. dedreb@arco.com
  1418.  
  1419. 
  1420. 
  1421. Path: ucivax!gateway
  1422. From: kent@sunfs3.bos.camex.com
  1423. Subject: Re: copyrights
  1424. Message-ID: <9207151912.AA13637@relay2.UU.NET>
  1425. Newsgroups: fa.think-c
  1426. Lines: 44
  1427. Date: 15 Jul 92 19:12:28 GMT
  1428.  
  1429. >(c) Copyright 1992 by Aaron Barnett.  All Rights Reserved.
  1430.  
  1431. I think the order is wrong.  I think "Copyright (c) 1992 by Aaron
  1432. Barnett" is correct.  Also, to be one step safer, don't actually type
  1433. "(c)", type option-g to get the real thing instead.  (The real thing
  1434. looks cooler too.)
  1435.  
  1436. Be sure not to do anything dumb like calling it "Public Domain" or
  1437. "PD" in any of your docs.  If you want to give some people permission
  1438. to copy your program be careful how you word it, give them only the
  1439. rights you want to give then, reserve for yourself the rights you want
  1440. to reserve for yourself.
  1441.  
  1442. You also might want to see what others have done.  From Disinfectant
  1443. 2.9's help:
  1444.  
  1445.   Permission is granted to make and distribute copies of this
  1446.   software, provided this disclaimer and copyright notice are
  1447.   preserved on all copies.  The software may not, however, be sold or
  1448.   distributed for profit, or included with other software which is
  1449.   sold or distributed for profit, without the permission of the
  1450.   author.
  1451.  
  1452. I don't see that he prohibits alterations of his software, but he as
  1453. other techniques for doing that--like self-checking and refusing to
  1454. run, and he also has released source code for the non-virus parts of
  1455. the program, so he is being very liberal.  You might send mail to John
  1456. Norstad asking whether you may copy his copyright notice.  (Can a
  1457. copyright notice itself be copyrighted??)
  1458.  
  1459. Others give specific permission to online services to charge normal
  1460. connect fees for downloading and for BMUG and BCS Mac to include it
  1461. for sale in their collections.  Some explicitly say the Educorp and
  1462. its ilk may *not* include it in their collections.
  1463.  
  1464. Also, check out the notice on Apple's tech notes.  It should be pretty
  1465. good at providing for wide distribution while maintaining clear
  1466. ownership.
  1467.  
  1468. --
  1469. Kent Borg                                   kent@camex.com or kentborg@aol.com
  1470.                                             H:(617) 776-6899  W:(617) 426-3577
  1471. As always, things look better when some costs are left out.
  1472.                               -Economist 3-28-92 p. 94
  1473. 
  1474. 
  1475. Path: ucivax!gateway
  1476. From: asaria@rrdtc.donnelley.com
  1477. Subject: Sublaunching under System 6
  1478. Message-ID: <9207152230.AA20595@uu.psi.com>
  1479. Newsgroups: fa.think-c
  1480. Lines: 24
  1481. Date: 15 Jul 92 23:13:29 GMT
  1482.  
  1483.  
  1484. Hello,
  1485.  
  1486. Has anyone tried tried to sub-launch an child from an application?  If so
  1487. how does the launching application wait for the child to exit before
  1488. continuing?
  1489.  
  1490. Tech. Note #205 (Multifinder Revisited) implies a childDiedEvent will be
  1491. sent when a sub-launched child dies.  However it explictly says that this
  1492. event is supported only under Multifinder 6.1b7 or 6.1b9, which are available
  1493. to developers but cannot be distributed. So applications developed  expecting
  1494. this event will work on systems running the developer version of Multifinder
  1495. only.
  1496.  
  1497. So the question is: is there a sanctioned method of creating a child process
  1498. in an application and waiting until the child completes?
  1499.  
  1500. If anybody has ideas on how to do this, I'd love to find out.
  1501.  
  1502. Thanks.
  1503.  
  1504. Riyaz Asaria
  1505. asaria@donnelley.com
  1506.  
  1507. 
  1508. 
  1509. Path: ucivax!gateway
  1510. From: ephraim@think.com (Ephraim Vishniac)
  1511. Subject: Re: Someone please help me translate this pascal code to C...
  1512. Message-ID: <9207160122.AA05202@leander.think.com>
  1513. In-Reply-To: Your message of "15 Jul 92 18:03:34 GMT."
  1514.              <17137.9207151803@dcs.glasgow.ac.uk>
  1515. Newsgroups: fa.think-c
  1516. Lines: 43
  1517. Date: 16 Jul 92 01:22:37 GMT
  1518.  
  1519.  
  1520.    Date:  15 Jul 92 18:03:34 GMT
  1521.    From:  Nick Nei <inei@dcs.glasgow.ac.uk>
  1522.  
  1523.        I am trying to translate a THINK-Pascal source INIT which restarts
  1524.    the mac at a specified time.  It uses the (old) Time Manager, but there
  1525.    is some code which doesn't make much sense to me:
  1526.  
  1527.        (* This gets some separately compiled code which reboots the mac *)
  1528.        myhandle := getnamedresource ('CODE', 'Reboot');
  1529.        codesize := gethandlesize (myhandle);
  1530.  
  1531.        (*  OK, This is the part that puzzles me... *)
  1532.        BufPtr := Pointer ($10C);
  1533.        BufPtr^ := Pointer (ord(BufPtr^) - (codesize + 100));
  1534.  
  1535. Permanently allocate (codesize+100) bytes at the top of memory. Lower
  1536. BufPtr (a low memory global) to reflect this allocation.
  1537.  
  1538.        tmptr := Pointer (ord(BufPtr^) + 2);
  1539.        if odd(ord(tmptr)) then
  1540.            tmptr := Pointer(ord(tmptr) + 1);
  1541.  
  1542. tmptr is se to BufPtr+2, then rounded up 1 if it's odd.
  1543.  
  1544.        ourcodeptr := Pointer(ord(BufPtr^) + 50);
  1545.        if odd(ord(ourcodeptr)) then
  1546.            ourcodeptr := Pointer(ord(ourcodeptr) + 1);
  1547.  
  1548. ourcodeptr is BufPtr + 50, then rounded up 1 if it's odd. I suppose
  1549. the 50 bytes are for variable storage. Is that what tmptr is used for
  1550. later?
  1551.  
  1552.        (* end of stuff that baffles me! *)
  1553.  
  1554.        BlockMove (myhandle^, ourcodeptr, codesize);
  1555.  
  1556.    Can any gurus illuminate (or better translate!) this for me!  I have a feeling
  1557.    this is detailed in some tech note but where is it?  Mac programming is
  1558.    REALLY arcane!!
  1559.  
  1560. BufPtr is mentioned in IM-II, pages 19 and 22. Not really explained
  1561. there, though.
  1562. 
  1563. 
  1564. Path: ucivax!gateway
  1565. From: umdenbo0@ccu.umanitoba.ca ("David A. Denboer")
  1566. Subject: Programming QuickTime
  1567. Message-ID: <9207160342.AA21631@ccu.UManitoba.CA>
  1568. Newsgroups: fa.think-c
  1569. Lines: 19
  1570. Date: 16 Jul 92 03:42:41 GMT
  1571.  
  1572.  
  1573. Why, when compiling stuff from Apple's QuickTime CD, does the compiler
  1574. continuously stop compiling at the line
  1575. # include <Components.h>
  1576.  
  1577. No matter what kind of mac I am using, the damn thing wont work.
  1578. It says that it could not load "Components.h", yet when I load it it works fine.
  1579. It is in the same folder as my project, as are all the interface stuff for QT,
  1580. but still wont load.
  1581.  
  1582. What is happening?!!?!?!?
  1583. I have a project using QT due in two weeks, and cant even debug the damn
  1584. program, cause it wont compile completely!
  1585.  
  1586. Thanks,
  1587. David A. denBoer
  1588. umdenbo0@ccu.umanitoba.ca
  1589. Musi Computer Products
  1590. "Macintosh Users Show Intelligence" (MUSI)
  1591. 
  1592. 
  1593. Path: ucivax!gateway
  1594. From: mcmath@csb1.nlm.nih.gov (Chuck McMath)
  1595. Subject: Re: copyrights
  1596. Message-ID: <9207161136.AA00559@csb1.nlm.nih.gov>
  1597. Newsgroups: fa.think-c
  1598. Lines: 33
  1599. Date: 16 Jul 92 11:36:18 GMT
  1600.  
  1601. My wife took a class in copyright law a loooong time ago, and here is what
  1602. I remember:
  1603.  
  1604. 1. You have to put either the word 'copyright' or the little c inside the
  1605. circle in the work you're going to copyright.  Putting a c inside
  1606. parenthesis will not do it.  I don't believe you need both the c/circle and
  1607. the word, either will do.  You should put the year also.
  1608.  
  1609. 2. The copyright notice for computer programs should be displayed
  1610. prominently - that translates to 1. on the disks, 2. on any outside
  1611. packaging, 3. in the code itself, and 4. on any descriptive screens (like
  1612. in the about box).  It should also appear when the program is first run
  1613. (like on a welcome-type screen).
  1614.  
  1615. 3. You don't actually have to file anything to have a copyright, though you
  1616. can.  When you become aware of a copyright infringment, you have a certain
  1617. period of time (don't know what it is) to file the proper forms with the
  1618. Library of Congress (?).  If you don't file the forms within that period of
  1619. time, you can't sue (or whatever) the other person for infringment.  So you
  1620. see, if you file the papers at the beginning, you make it a little easier
  1621. to pursue any infringments.
  1622.  
  1623. 4. You should keep records of when you produced the work (this will help
  1624. establish a claim in the future, if some problem arises with conflicting
  1625. copyrights).
  1626.  
  1627. chuck
  1628.  
  1629. |- chuck mcmath - mcmath@csb1.nlm.nih.gov - MSD, Inc. ------------|
  1630. |- National Library of Medicine - National Institutes of Health --|
  1631. |- Bethesda, MD 20894 ------------- C++ causes cancer ------------|
  1632. |- "Hey batter, hey batter, hey batter, swing" - Anon. -----------|
  1633.  
  1634. 
  1635. 
  1636. Path: ucivax!gateway
  1637. From: macknik@uhunix.uhcc.hawaii.edu ("Elizabeth A. Macknik")
  1638. Subject: Re: Copyrights
  1639. Message-ID: <9207161944.AA20816@uhunix.uhcc.Hawaii.Edu>
  1640. X-Mailer: ELM [version 2.3 PL0]
  1641. Newsgroups: fa.think-c
  1642. Lines: 53
  1643. Date: 16 Jul 92 19:46:09 GMT
  1644.  
  1645.  
  1646. Recently Chuck McMath said this:
  1647.  
  1648.   1. You have to put either the word 'copyright' or the little c inside the
  1649.   circle in the work you're going to copyright.  Putting a c inside
  1650.   parenthesis will not do it.  I don't believe you need both the c/circle and
  1651.   the word, either will do.  You should put the year also.
  1652.  
  1653. This is right!  A judge decided that a c inside parentheses is _not_ a
  1654. copyright symbol.  So spell it out or use the correct symbol!
  1655.  
  1656.   2. The copyright notice for computer programs should be displayed
  1657.   prominently - that translates to 1. on the disks, 2. on any outside
  1658.   packaging, 3. in the code itself, and 4. on any descriptive screens (like
  1659.   in the about box).  It should also appear when the program is first run
  1660.   (like on a welcome-type screen).
  1661.  
  1662. You must put your copyright notice where people can see it--just your source
  1663. code will not work.  (Besides, your copyright would not make it into your
  1664. distributed code.)
  1665.  
  1666.   3. You don't actually have to file anything to have a copyright, though you
  1667.   can.  When you become aware of a copyright infringment, you have a certain
  1668.   period of time (don't know what it is) to file the proper forms with the
  1669.   Library of Congress (?).  If you don't file the forms within that period of
  1670.   time, you can't sue (or whatever) the other person for infringment.  So you
  1671.   see, if you file the papers at the beginning, you make it a little easier
  1672.   to pursue any infringments.
  1673.  
  1674. No, you have all of the privileges of a copyright whether you register with
  1675. the Library of Congress or not!  However, if you register your program, and
  1676. someone later says that they developed the program, not you, your registration
  1677. makes it much easier to show that it is indeed your program.
  1678.  
  1679. Last time I checked, registration cost $10.
  1680.  
  1681.   4. You should keep records of when you produced the work (this will help
  1682.   establish a claim in the future, if some problem arises with conflicting
  1683.   copyrights).
  1684.  
  1685. This is also to prove that you did indeed develop the code.  Since a
  1686. copyright protects creative work, if you keep historical copies of the code
  1687. during development, it will help protect your copyright.
  1688.  
  1689.  
  1690. One final note.  You must have your copyright notice on all distributions of
  1691. your software!  If you distribute any copies without the copyright notice,
  1692. you essentially are entering your program into the public domain.  I always
  1693. write my copyright notice before anything else--that way even my alpha and
  1694. beta versions have my copyright notice prominantly displayed.
  1695.  
  1696. --
  1697. Elizabeth A. Macknik                             macknik@uhunix.uhcc.hawaii.edu
  1698. 
  1699. 
  1700. Path: ucivax!gateway
  1701. From: dedjhc@arco.com (John Champion)
  1702. Subject: Programming QuickTime
  1703. Message-ID: <9207162102.AA05125@Arco.COM>
  1704. Newsgroups: fa.think-c
  1705. Lines: 25
  1706. Date: 16 Jul 92 21:03:05 GMT
  1707.  
  1708. >From: "David A. Denboer" <umdenbo0@ccu.umanitoba.ca>
  1709. >Subject: Programming QuickTime
  1710. >Newsgroups: fa.think-c
  1711. >Date: 16 Jul 92 03:42:41 GMT
  1712. >To: think-c@ics.uci.edu
  1713. >
  1714. >
  1715. >Why, when compiling stuff from Apple's QuickTime CD, does the compiler
  1716. >continuously stop compiling at the line
  1717. ># include <Components.h>
  1718. >
  1719. >No matter what kind of mac I am using, the damn thing wont work.
  1720. >It says that it could not load "Components.h", yet when I load it it works fine.
  1721. >It is in the same folder as my project, as are all the interface stuff for QT,
  1722. >but still wont load.
  1723. >
  1724.  
  1725. #include <Components.h>    //looks in the system include file folders
  1726. #include "Components.h"    //looks in the local folder & system include
  1727. folders
  1728.  
  1729. -------------------------------------------------------------------
  1730. John Champion  dedjhc@arco.com   Arco Alaska, Inc.  Kuparuk, Alaska
  1731. -------------------------------------------------------------------
  1732.  
  1733. 
  1734. 
  1735. Path: ucivax!gateway
  1736. From: zkessin@chaos.cs.brandeis.edu (Zach Kessin)
  1737. Subject: file question
  1738. Message-ID: <9207162118.AA18419@chaos.cs.brandeis.edu>
  1739. Newsgroups: fa.think-c
  1740. Lines: 14
  1741. Date: 16 Jul 92 21:19:02 GMT
  1742.  
  1743.  
  1744. In the Think C UNIX/ANSI library for files i saw stdin and stdout but
  1745. is there an eqivelent of /dev/null? It would make something I'm doing
  1746. much easer!
  1747.  
  1748. thanks
  1749.  
  1750. --Zach
  1751. ****************************CLINTON/GORE'92**********************
  1752.    Zachary Kessin
  1753.  ZKessin@chaos.cs.brandeis.edu  / Time and tide melts the snowman
  1754.  (617)736-7218                 /   --The Doctor 'Time and the Rani'
  1755.  
  1756.  
  1757. 
  1758. 
  1759. Path: ucivax!gateway
  1760. From: zkessin@chaos.cs.brandeis.edu (Zach Kessin)
  1761. Subject: ansi file ops in A4 libs
  1762. Message-ID: <9207171730.AA02488@chaos.cs.brandeis.edu>
  1763. Newsgroups: fa.think-c
  1764. Lines: 20
  1765. Date: 17 Jul 92 17:31:11 GMT
  1766.  
  1767.  
  1768. Is there a way to use the ansi file operstions fprinf(), fopen() etc
  1769. in a code resource? Better yet a way to get a fake prinf() that would
  1770. send output to a text buffer?
  1771.  
  1772. I think I could fake it if I had to...
  1773.                             ...But I'd rather not have to.
  1774.  
  1775. Thanks a 10^6
  1776.  
  1777. --Zach
  1778.  
  1779. ****************************CLINTON/GORE'92**********************
  1780.  
  1781.    Zachary Kessin
  1782.  ZKessin@chaos.cs.brandeis.edu  / Time and tide melts the snowman
  1783.  (617)736-7218                 /   --The Doctor 'Time and the Rani'
  1784.  
  1785.  
  1786.  
  1787. 
  1788. 
  1789. Path: ucivax!gateway
  1790. From: chuck@ksr.com
  1791. Subject: Cool Black Menu (tm)
  1792. Message-ID: <9207171853.AA28776@z8.ksr.com>
  1793. Newsgroups: fa.think-c
  1794. Lines: 28
  1795. Date: 17 Jul 92 18:53:21 GMT
  1796.  
  1797.  
  1798. I have this most funny bug.  I am pretty sure that it is close to
  1799. impossible for you kind netters to tell what's wrong based on the little
  1800. info below, unless someone had the same bug and analyzed it.
  1801.  
  1802. I have an application which works pretty much as I expect (I expect it to
  1803. behave, that is).  It does not crash or anything horrible like that.  But
  1804. every once in a while, maybe once every 10 invocations, it paints the menu
  1805. bar a cool black background, with the letters in dark yellow or brown.
  1806. Other menus, like the pull down directory path in SFD and like hierarchical
  1807. menus in my application, all behave the same.  When I switch to other
  1808. applications, they restore their conventional, if somewhat dull, B & W
  1809. menus - till I switch to my application which restores the cool menu.
  1810.  
  1811. The application does all sorts of things, including rather involved
  1812. manipulations of GWorlds.  But this one-in-a-ten thing happens immediately
  1813. after invocation, before the application has a chance to do its GWorld and
  1814. other big data structure things.
  1815.  
  1816. I'd like to repeat that the application works just fine even with the Cool
  1817. Black Menu (tm).  I can detect no other oddities in the way it works,
  1818. including the graphics.
  1819.  
  1820. I am using a Mac II Si, system 7/tuna and a couple of inits including
  1821. AutoDoubler, which I like a lot, but cannot somehow make myself believe
  1822. it's innocent until proven otherwise.
  1823.  
  1824. Chuck
  1825. 
  1826. 
  1827. Path: ucivax!gateway
  1828. From: odell@bu-it.bu.edu (Jim O'Dell)
  1829. Subject: ansi file ops in A4 libs
  1830. Message-ID: <9207180015.AA16036@buitc.bu.edu>
  1831. In-Reply-To: Zach Kessin's message of 17 Jul 92 17:31:11 GMT <9207171730.AA02488@chaos.cs.brandeis.edu>
  1832. Newsgroups: fa.think-c
  1833. Lines: 17
  1834. Date: 18 Jul 92 00:16:06 GMT
  1835.  
  1836.  
  1837. Is there a way to use the ansi file operstions fprinf(), fopen() etc
  1838. in a code resource? Better yet a way to get a fake prinf() that would
  1839. send output to a text buffer?
  1840.  
  1841. I think I could fake it if I had to...
  1842.                             ...But I'd rather not have to.
  1843. =====
  1844. I think sprintf works in the A4 lib. That should do exactly what you
  1845. want.
  1846.  
  1847. If you want to fake fprintf, its pretty easy to write versions of
  1848. fopen. fclose and fprintf that call the Appropriate Mac functions
  1849. (FSOpen, FSClose and for fprintf a call top sprintf and then a call
  1850. to FSWrite.
  1851.  
  1852. Jim
  1853. 
  1854. 
  1855. Path: ucivax!gateway
  1856. From: vthrc@mailbox.uq.oz.au (Danny Thomas)
  1857. Subject: re: ansi file ops in A4 libs
  1858. Message-ID: <9207172005.aa00698@q2.ics.uci.edu>
  1859. Newsgroups: fa.think-c
  1860. Lines: 129
  1861. Date: 18 Jul 92 03:06:04 GMT
  1862.  
  1863. Zach Kessin <zkessin@chaos.cs.brandeis.edu> writes
  1864. >Is there a way to use the ansi file operstions fprinf(), fopen() etc
  1865. >in a code resource? Better yet a way to get a fake prinf() that would
  1866. >send output to a text buffer?
  1867. >
  1868. >I think I could fake it if I had to...
  1869. >                            ...But I'd rather not have to.
  1870.  
  1871. well Zach, I recently went through this in writing an XOP (external module)
  1872. for the Igor graphing/analysis program. In my case there were several other
  1873. ANSI facilities I wanted to use (eg strftime()) which amounted to rather
  1874. more work than simply faking fopen() etc. To quote from the comments I
  1875. wrote at the time:
  1876.  
  1877. /*
  1878.  *             NOTES ON THINK C ANSI LIBRARY IN XOPs
  1879.  *
  1880.  *  ANSI A4 is missing quite a few ANSI functions, perhaps because they
  1881.  *  aren't needed by most things you do in the A4 world, but with some of
  1882.  *  them it isn't as simple as just including the file in the project:
  1883.  *    in the case of time.c, it simply has arrays of strings with
  1884.  *    an initializer of literal strings constants. These are OK in
  1885.  *    a single-segment code resource, but not in a multi-segment project.
  1886.  *    The workaround is to use a function to perform the initialization.
  1887.  *
  1888.  *  PROBLEMS WITH STDIO FUNCTIONS
  1889.  *  have to include at least
  1890.  *    alloc, fread, fseek, getc, iomisc, stdio
  1891.  *  the FILE structs are allocated statically, but the buffers are
  1892.  *    malloc'd and free'd by fclose() and other functions. It is
  1893.  *    important that the buffers are free'd upon exit from the XOP
  1894.  *    including premature panic exits.
  1895.  *  I think malloc should be OK with CODE resources though they
  1896.  *    can't be used from interrupt routines, such as drivers
  1897.  *  my approach is to remove the _atexit_stdio() function register
  1898.  *  and and move the stdio_exit() call to the CLEANUP message below.
  1899.  */
  1900.  
  1901. //  time.c modified because it had static string initialization
  1902. //  so this routine needs to be called before using ANY ANSI time stuff!!
  1903. void  init_time_routines(void);
  1904. //  in the THINK ANSI stdio library, this routine was registered
  1905. //  as an at_exit function. This was causing a problem, see notes below.
  1906. void  stdio_exit(void);
  1907.  
  1908.  
  1909.  
  1910.      *=*=*=*=*=*=*=*=*=*=*=* RECIPE *=*=*=*=*=*=*=*=*=*=*=*=
  1911.  
  1912. make a copy of time.c called my_ANSI_time.c and place this conditional
  1913. around the definitions of day/month names already there (or simply replace
  1914. them)
  1915.  
  1916. #if 1
  1917.  
  1918. static char *dayname[7];  //  had string initializers
  1919. static char *monthname[12];  //  had string initializers
  1920.  
  1921. void  init_time_routines(void);  //  new function
  1922.  
  1923. void  init_time_routines(void)
  1924. {
  1925.     dayname[0] = "Sunday";     dayname[1] = "Monday";    dayname[2] =
  1926. "Tuesday";
  1927.     dayname[3] = "Wednesday";  dayname[4] = "Thursday";  dayname[5] =
  1928. "Friday";
  1929.     dayname[6] = "Saturday";
  1930.     monthname[0]  = "January";   monthname[1] = "February";
  1931.     monthname[2]  = "March";     monthname[3] = "April";
  1932.     monthname[4]  = "May";       monthname[5]  = "June";
  1933.        monthname[6]  = "July";       monthname[7]  = "August";
  1934.     monthname[8]  = "September";     monthname[9] = "October";
  1935.     monthname[10] = "November";   monthname[11] = "December";
  1936. }
  1937.  
  1938. #else
  1939.  
  1940.  
  1941. ... proprietary Symantec code
  1942.  
  1943.  
  1944. #endif
  1945.  
  1946. so at the start of your code YOU will have to call init_time_routines() to
  1947. initialise the month names.
  1948.  
  1949.  
  1950.  
  1951. make a copy of fopen.c called my_ANSI_fopen.c
  1952.  
  1953. Comment out the call to __atexit_stdio() at the end of __open()
  1954. Excise the "static" qualifier on the prototype declaration at the top of
  1955. the file, as well as the actual function definition of stdio_exit(). This
  1956. means that at the end of your program YOU will have to explicitly call
  1957. stdio_exit() to clean up the open files.
  1958. NB check comment block above, the cleanup has to be done on premature exits
  1959. too! (which was why THINK at_exit() registered the function)
  1960.  
  1961. In my case I made up a code-resource project with the following unmodified
  1962. THINK modules and built it as a library
  1963. arith.c, atoi.c, bufio.c, ctype.c, errno.c, fwrite.c, mem.c, printf.c,
  1964. scanf.c, stdio.c, str.c, strn.c & ungetc.c
  1965. PS on reflection, maybe this was the original THINK A4 library?
  1966.  
  1967. In the actual project for my XOP I included this library (8026 bytes) plus
  1968. alloc.c, fread.c, fseek.c, getc.c, iomisc.c my_ANSI_fopen.c &
  1969. my_ANSI_time.c
  1970. Mind you these could have been compiled in a second library.
  1971.  
  1972.  
  1973. That's all that I seem to have written down. All I know is that it seemed
  1974. to work for me but would be grateful to hear of other comments notably why
  1975. the at_exit() stuff didn't work. I believe MPW doesn't have the same
  1976. restrictions on multi-segment A4 stuff as THINK does.
  1977.  
  1978. cheers,
  1979. X500: @c=AU [I'm about to update VTHRC entries, soon...]
  1980.        @o=University of Queensland
  1981.         @ou=Physiology and Pharmacology Department
  1982.          @ou=Vision Touch and Hearing
  1983.           @cn=Danny Thomas
  1984.            @rfc822Mailbox=vthrc@cc.uq.oz.au
  1985.  
  1986.  
  1987. PPS actually, I must have missed something in my notes cause my XOP also
  1988. made use of setjmp/longjmp() for error exits, and what I've described
  1989. doesn't include the setjmp.c module?? Anyway this should provide a useful
  1990. starting point.
  1991.  
  1992. 
  1993. 
  1994. Path: ucivax!gateway
  1995. From: slosser@mindseye.berkeley.edu (Eric Slosser)
  1996. Subject: Cool Black Menu (tm)
  1997. Message-ID: <9207182023.AA19445@mindseye.berkeley.edu>
  1998. In-Reply-To: chuck@ksr.com's message of 17 Jul 92 18:53:21 GMT <9207171853.AA28776@z8.ksr.com>
  1999. Newsgroups: fa.think-c
  2000. Lines: 13
  2001. Date: 18 Jul 92 20:23:26 GMT
  2002.  
  2003.  
  2004. your 'feature':
  2005. every once in a while, maybe once every 10 invocations, it paints the menu
  2006. bar a cool black background, with the letters in dark yellow or brown.
  2007. Other menus, like the pull down directory path in SFD and like hierarchical
  2008. menus in my application, all behave the same.  When I switch to other
  2009. applications, they restore their conventional, if somewhat dull, B & W
  2010.  
  2011. my guess:
  2012. you've somehow set the window manager's gdevice to one of your offworld's
  2013. gdevice.  are you drawing to the window manager's color port?
  2014. just a guess... sounds like a cool feature indeed...
  2015.  
  2016. 
  2017. 
  2018. Path: ucivax!gateway
  2019. From: umgall01@ccu.umanitoba.ca (Vern Leslie Gall)
  2020. Subject: Mailing list
  2021. Message-ID: <9207192001.AA12907@ccu.UManitoba.CA>
  2022. X-Mailer: ELM [version 2.3 PL11]
  2023. Newsgroups: fa.think-c
  2024. Lines: 11
  2025. Date: 19 Jul 92 20:01:47 GMT
  2026.  
  2027.  
  2028. --
  2029. Vern Leslie Gall - umgall01@ccu.umanitoba.ca
  2030. Computer Science - University of Manitoba - Winnipeg, Canada
  2031.  
  2032. Hello,
  2033.     I am just starting out programming in C and would like to broaden my horizons.  Could you please put me on your mailing list.  My friend just mailed me about it and I think that it would be very helpful to me in developing software.
  2034.  
  2035. Thank-you very much,
  2036. Vern L. Gall
  2037.  
  2038. 
  2039. 
  2040. Path: ucivax!gateway
  2041. From: mcmath@csb1.nlm.nih.gov (Chuck McMath)
  2042. Subject: Pgm To Create Regions?
  2043. Message-ID: <9207201508.AA01403@csb1.nlm.nih.gov>
  2044. Newsgroups: fa.think-c
  2045. Lines: 23
  2046. Date: 20 Jul 92 15:08:55 GMT
  2047.  
  2048. Hey Think-ers:
  2049.  
  2050. I once wrote a program that displayed a bitmap in a window.  This bitmap
  2051. consisted of a map with different 'countries' on it.  This program allowed
  2052. you to click in a 'country'.  It would then fill the area and call
  2053. BitmapToRegion to convert that area to a region, which I then wrote out to
  2054. a file.  I used the region data in another program to make the map
  2055. 'clickable'.
  2056.  
  2057. I need to do the same thing, but can't locate the program.  Does anybody
  2058. know of a easy way to do this, or should I just rewrite the sucker (it's
  2059. not difficult, just a pain in the butt).
  2060.  
  2061. Or, if you have a brilliant idea as to how I can accomplish my goal some
  2062. other way, let me know!
  2063.  
  2064. chuck
  2065.  
  2066. |- chuck mcmath - mcmath@csb1.nlm.nih.gov - MSD, Inc. ------------|
  2067. |- National Library of Medicine - National Institutes of Health --|
  2068. |- Bethesda, MD 20894 ------------- C++ causes cancer ------------|
  2069. |- "Hey batter, hey batter, hey batter, swing" - Anon. -----------|
  2070.  
  2071. 
  2072. 
  2073. Path: ucivax!gateway
  2074. From: potts@itl.itd.umich.edu (Paul Potts)
  2075. Subject: Re:  ansi file ops in A4 libs
  2076. Message-ID: <9207201551.AA25277@itl.itd.umich.edu>
  2077. Newsgroups: fa.think-c
  2078. Lines: 10
  2079. Date: 20 Jul 92 15:52:48 GMT
  2080.  
  2081.  
  2082. If you want to fake a printf() to a text buffer, use sprintf and send the
  2083. output to a C string. Just allocate a pointer to a block of text and
  2084. sprintf to it. Cast it as a char *. I've used this technique successfully
  2085. on several occasions. You can call this from an XCMD.
  2086. If you're using TextEdit, it might b^E^@^T^R
  2087. If you're using TextEdit, it might be trickier. If you get stuck I can show
  2088. you some source code.
  2089. -Paul-
  2090. (paul potts, potts@itl.itd.umich.edu)
  2091. 
  2092. 
  2093. Path: ucivax!gateway
  2094. From: bobm@imagine.convex.com (Bob Miller)
  2095. Subject: Optimum THINK C partition size?
  2096. Message-ID: <9207221551.AA22086@imagine.convex.com>
  2097. Newsgroups: fa.think-c
  2098. X-Quote-Of-The: Actually, I don't like using a phone at all.  Not because I
  2099.                 have any grudge against the instrument itself -- I can fix a
  2100.                 telephone -- but because I like to see the folks I'm talking
  2101.                 to.  Without a face and a breath attached to speech, I grow
  2102.                 uneasy.  It's like eating when you have a cold and can taste
  2103.                 nothing.                -- Scott Russell Sanders
  2104. Organization: The GrapE-ics Lab
  2105. Lines: 9
  2106. Date: 22 Jul 92 15:52:02 GMT
  2107.  
  2108. Last night my Mac grew from 5Mb to 17 Mb (Yay!).  So now that I have
  2109. more memory, I'm wasting it all by making all applications' partitions
  2110. bigger.  (-:
  2111.  
  2112. Has anybody done any experimentation on the maximum useful partition
  2113. size for THINK C?  How much space does the compiler really take?  Will
  2114. it stay resident if there's room?
  2115.  
  2116.                     K<bob>
  2117. 
  2118. 
  2119. Path: ucivax!gateway
  2120. From: abboud@cedrus.cedrus.com ("Hisham A. Abboud")
  2121. Subject: Truncate file length
  2122. Message-ID: <9207221844.AA01315@cedrus.com>
  2123. Newsgroups: fa.think-c
  2124. Lines: 17
  2125. Date: 22 Jul 92 20:34:03 GMT
  2126.  
  2127.  
  2128. Hi there,
  2129.  
  2130. Is there an ANSI C equivalent to the Mac's SetEOF() function?  I have
  2131. a binary file that, depending on the number of records in it, could
  2132. get shorter.  But I didn't find anything that'll let me shorten the
  2133. file.  But it's not terribly important; a few kilobytes of slack space
  2134. wont hurt anyone, but I'm just puzzled not to find a way to do this.
  2135.  
  2136. Thanks.
  2137.  
  2138.                     Hisham.
  2139.  
  2140.  
  2141. Hisham A. Abboud, Cedrus Corp.  [Internet: abboud@cedrus.com]
  2142.  
  2143.  
  2144. 
  2145. 
  2146. Path: ucivax!gateway
  2147. From: jimlynch@netcom.com (Jim Lynch)
  2148. Subject: TCL and internationalization
  2149. Message-ID: <9207230951.AA26582@netcom.netcom.com>
  2150. Newsgroups: fa.think-c
  2151. Lines: 10
  2152. Date: 23 Jul 92 09:52:12 GMT
  2153.  
  2154. I hope that Symantec is listening...
  2155.  
  2156. My question is when will there be a version of the TCL which is international-
  2157. ready? The TCL text classes do not, at present, provide for 2 byte characters;
  2158. is anyone out there working on this? There must be more issues than text (or
  2159. is there?)
  2160.  
  2161. Signed,
  2162.  
  2163. Curious (jimlynch@netcom.com)
  2164. 
  2165. 
  2166. Path: ucivax!gateway
  2167. From: de19@umail.umd.edu (Dana S Emery)
  2168. Subject: Re: TCL and internationalization
  2169. Message-ID: <Mailstrom.B54.5394.16657.de19@umail.umd.edu>
  2170. In-Reply-To: Your message <9207230951.AA26582@netcom.netcom.com> of 23 Jul 92
  2171.  09:52:12 GMT
  2172. Content-Type: TEXT/plain; charset=US-ASCII
  2173. Newsgroups: fa.think-c
  2174. Lines: 26
  2175. Date: 23 Jul 92 11:49:39 GMT
  2176.  
  2177. Jim Lynch wrote:
  2178.  
  2179. >  The TCL text classes do not, at present, provide for 2 byte characters;
  2180.  
  2181. NOT SO!  (what release did you *test* ????)
  2182.  
  2183. TCL 1.1.1 (Pascal v 4.x) CEditText and CStyleText work just fine under
  2184. Kanji-Talk 6.0.7 , Arabic 6.0.7, and Hebrew 6.0.7.  CIntegerText uses Sane
  2185. (which is sm compatible) for numeric/text conversions, and all editing functions
  2186. take due care to allow for double byte characters.
  2187.  
  2188. I cant speak for the C version, but I doubt that it would have any problems
  2189. either.
  2190.  
  2191. CPEditText (wysocki) May not, (havent tested it yet), but it avoids TE.
  2192.  
  2193. Other issues exist, but text handling is none of them.
  2194.  
  2195. Dana S Emery <de19@umail.umd.edu>
  2196.  
  2197. BTW, you C users (bigots?) have got to remember that TCL is an entity unto
  2198. itself, independant of the (2) languages it has been published in (to date), and
  2199. has itself had several releases, each release with its own bugs.  PLEASE have
  2200. the common courtesy to mention the version and language you are kvetching about,
  2201. 'TCL' is not specific enough for productive discussion.
  2202.  
  2203. 
  2204. 
  2205. Path: ucivax!gateway
  2206. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  2207. Subject: Optimum THINK C partition size?
  2208. Message-ID: <9207231242.AA18684@chaos.cs.brandeis.edu>
  2209. In-Reply-To: Bob Miller's message of 22 Jul 92 15:52:02 GMT <9207221551.AA22086@imagine.convex.com>
  2210. Newsgroups: fa.think-c
  2211. Lines: 35
  2212. Date: 23 Jul 92 12:43:11 GMT
  2213.  
  2214. >>>>> On 22 Jul 92 15:52:02 GMT, Bob Miller <bobm@imagine.convex.com> said:
  2215.  
  2216.  > Last night my Mac grew from 5Mb to 17 Mb (Yay!).  So now that I have
  2217.  > more memory, I'm wasting it all by making all applications' partitions
  2218.  > bigger.  (-:
  2219.  
  2220.  > Has anybody done any experimentation on the maximum useful partition
  2221.  > size for THINK C?  How much space does the compiler really take?  Will
  2222.  > it stay resident if there's room?
  2223.  
  2224. I wouldn't recomend changing the partition size for THINK C much, if
  2225. at all. During compliation, (almost) all data structures will be
  2226. allocated from multi-finder temporary memory, and THINK C will use its
  2227. own heap only as a last resort. If you increase THINK C's partition
  2228. for no reason(*), then you end up fragmenting the pool of memory that
  2229. THINK C uses for compilations.
  2230.  
  2231. (*)There are some cases where you will want to increase THINK C's
  2232. partition size. If you have a very large project, you'll need to
  2233. increase the partition, since project-specific data structures can get
  2234. very large, and aren't allocated off of the multi-finder temp heap.
  2235. Another case is if you get an "out of memory" error inside of the
  2236. THINK C debugger's Data window. This can occur if THINK C can't
  2237. compile the expression because it doesn't have enough memory. At this
  2238. point you can try quitting all other open apps, or increase THINK C's
  2239. heap.
  2240.  
  2241. (I have 17 Megs, and I leave it at 1500K, since CMaster uses about
  2242. 200K or so.)
  2243.  
  2244.     -phil
  2245. ----
  2246.    Phil Shapiro                                   Software Engineer
  2247.    Language Products Group                     Symantec Corporation
  2248.            Internet: phils@cs.brandeis.edu
  2249. 
  2250. 
  2251. Path: ucivax!gateway
  2252. From: jimlynch@netcom.com (Jim Lynch)
  2253. Subject: OK...
  2254. Message-ID: <9207231613.AA26970@netcom.netcom.com>
  2255. Newsgroups: fa.think-c
  2256. Lines: 12
  2257. Date: 23 Jul 92 16:14:17 GMT
  2258.  
  2259. OK. The version is Think C 5.2 (or 5.0.2) with TCL 1.1.2... If this is the
  2260. case, can someone tell me how to do things like moving the insertion point,
  2261. deleting characters and comparison and keep things compatible with
  2262. international issues?
  2263.  
  2264. I'm doing things like sending the character code for right arrow to move the
  2265. insertion point right, etc. What kinds of things do I need to watch out for?
  2266. How do I go about comparing keystrokes? Any help would be appreciated as I
  2267. would like to look toward the future with my project.
  2268.  
  2269. Thank you,
  2270. Jim
  2271. 
  2272. 
  2273. Path: ucivax!gateway
  2274. From: Roland.Mansson@ldc.lu.se (Roland Mansson)
  2275. Subject: Problems with LAPAddATQ/THINK C 5
  2276. Message-ID: <920723.184500.1787@macpost.lu.se>
  2277. Newsgroups: fa.think-c
  2278. Lines: 35
  2279. Date: 23 Jul 92 16:44:34 GMT
  2280.  
  2281. I've tried to make LAPAddATQ() work from THINK C 5. After spending a day or
  2282. so on trying to find my bugs, I noticed that LAPAddATQ() changed one of
  2283. my most important global variables! That variable was not involved at all
  2284. in the LAPAddATQ() call...
  2285.  
  2286. After substituting LAPAddATQ with MyLAPAddATQ (see below) it now works. I've
  2287. not examined THINK's code for LAPAddATQ(), so I can't say for sure that it's
  2288. a THINK C bug.
  2289.  
  2290. Another interesting thing with LAPAddATQ() is that it is so badly
  2291. documented. After (too many) hours of testing, I discovered that the
  2292. ATQEntryPtr should leave the parameters on the stack (ie not pop them into
  2293. registers). IM doesn't tell you which way to do it! BAD!!!
  2294.  
  2295. static pascal OSErr MyLAPAddATQ(ATQEntryPtr theATQEntry)
  2296. {
  2297. OSErr   sts;
  2298.  
  2299.         asm {                           ; IM VI 32-19
  2300.                 MOVE.L  #23, D0         ; put routine code into D0
  2301.                 MOVE.L  theATQEntry, A0 ; put ATQ entry in A0
  2302.                 MOVE.L  LAPMgrPtr, A1   ; put pointer to LAP manager in A1
  2303.                 JSR             LAPMgrCall(A1)  ; jump to start of LAP manager s
  2304.                 MOVE.W  D0, sts         ; get return status
  2305.         }
  2306.  
  2307.         return sts;
  2308.  
  2309. } /* MyLAPAddATQ */
  2310.  
  2311. -----
  2312. Roland Mansson, Lund University Computing Center, Box 783, S220 07 Lund, Sweden
  2313. Phone: +46-46107436   Fax: +46-46138225   Bitnet: ROLAND@SELUND
  2314. Internet: roland.mansson@ldc.lu.se   or   roland.mansson%ldc.lu.se@uunet.uu.net
  2315. UUCP: {uunet,mcvax}!sunic!ldc.lu.se!roland.mansson    AppleLink: SW0472
  2316. 
  2317. 
  2318. Path: ucivax!gateway
  2319. From: bobm@imagine.convex.com (Bob Miller)
  2320. Subject: Re: Optimum THINK C partition size?
  2321. Message-ID: <9207231825.AA29859@imagine.convex.com>
  2322. In-Reply-To: Your message of "23 Jul 92 12:43:11 GMT."
  2323.              <9207231242.AA18684@chaos.cs.brandeis.edu>
  2324. Newsgroups: fa.think-c
  2325. X-Quote-Of-The: It's spelled just the way it sounds.  -- Mike Przybyla
  2326. Lines: 8
  2327. Date: 23 Jul 92 18:25:41 GMT
  2328.  
  2329. > During compilation, (almost) all data structures will be allocated
  2330. > from multi-finder temporary memory, and THINK C will use its own
  2331. > heap only as a last resort.
  2332.  
  2333. How about the compiler and linker code?  Are they in separate code
  2334. segments that get purged when they aren't in use?  How big are they?
  2335.  
  2336.                     K<bob>
  2337. 
  2338. 
  2339. Path: ucivax!gateway
  2340. From: umdenbo0@ccu.umanitoba.ca ("David A. Denboer")
  2341. Subject: QuickTime headers
  2342. Message-ID: <9207240231.AA13521@ccu.UManitoba.CA>
  2343. Newsgroups: fa.think-c
  2344. Lines: 13
  2345. Date: 24 Jul 92 02:53:33 GMT
  2346.  
  2347.  
  2348. In my THINK C 5.02 package is a file called StandardFile.h.
  2349. This does not have the declarations for the QuickTime Preview stuff.
  2350. Where do I get this from?  It was not on my QuickTime CD-ROM, nor was it incl.
  2351. with the THINK updaters.
  2352. Where can I get this, as it has come time to compile my application, and
  2353. I cant do it without the correct StandardFile.h header file!!!
  2354.  
  2355. Thanks,
  2356. David A. denBoer
  2357. umdenbo0@CCU.UManitoba.CA
  2358. Musi Computer Products
  2359. Macintosh Users Show Intelligence
  2360. 
  2361. 
  2362. Path: ucivax!gateway
  2363. From: de19@umail.umd.edu (Dana S Emery)
  2364. Subject: in apology for flame
  2365. Message-ID: <Mailstrom.B54.2279.15089.de19@umail.umd.edu>
  2366. In-Reply-To: Your message <9207231613.AA26970@netcom.netcom.com> of 23 Jul 92
  2367.  16:14:17 GMT
  2368. Content-Type: TEXT/plain; charset=US-ASCII
  2369. Newsgroups: fa.think-c
  2370. Lines: 16
  2371. Date: 24 Jul 92 05:09:57 GMT
  2372.  
  2373. Sorry about the flameing in my previous post, jim rightly took me to task via
  2374. private mail.  I monitor TCL-Talk, think-c, and comp.sys.mac.programmer, and
  2375. have been building that head of steam up for some time, as an aggragate
  2376. response.
  2377.  
  2378. I didnt mean the *c-bigots* reference to be taken for anything more than the
  2379. hyperbole that it was.
  2380.  
  2381. For reference, I suppose I could be called a Pascal-bigot, but since my language
  2382. of preference is Mary (which does not exist (yet) for the Mac), MARY-bigot would
  2383. be most correct.
  2384.  
  2385. ------
  2386.  
  2387. Dana S Emery <de19@umail.umd.edu>
  2388.  
  2389. 
  2390. 
  2391. Path: ucivax!gateway
  2392. From: de19@umail.umd.edu (Dana S Emery)
  2393. Subject: Re: OK...
  2394. Message-ID: <Mailstrom.B54.7506.-3114.de19@umail.umd.edu>
  2395. In-Reply-To: Your message <9207231613.AA26970@netcom.netcom.com> of 23 Jul 92
  2396.  16:14:17 GMT
  2397. Content-Type: TEXT/plain; charset=US-ASCII
  2398. Newsgroups: fa.think-c
  2399. Lines: 67
  2400. Date: 24 Jul 92 06:37:04 GMT
  2401.  
  2402.  
  2403. It is extreemly difficult for any *real* application to be truly language
  2404. independant.  Apple has gone a long way towards making that goal possible, but
  2405. mastering the bable of the world is a challanging task to say the least.
  2406. The necessary generallity may be insuportable for computationally intensive
  2407. applications, and even System 7 is helpless if the relevant scriptmanager
  2408. resources are absent (ie, a document uses a font which implies a script not
  2409. installed, so none of the tables are there).  The present move towards
  2410. referencing fonds by name is dangerous in that it strips the script reference
  2411. implicit in the FOND Id, so IMHO, all FOND references in a file should be by
  2412. Both name and Id.
  2413.  
  2414. For a program to be acceptable to a non-bilingual foreign market, it has to be
  2415. (at least) localized in both Manual and Resources.  Apple has just released an
  2416. overview manual 'Macintosh guide to software localization', which documents most
  2417. of the international fond and keyboard layouts, and also discusses some of the
  2418. problems of idiom, as well as ways to minimize the technical problems of
  2419. localization.  Applications which need to support foreign platform usage have a
  2420. particularly difficult task of gathering *all* of the relevant standards.
  2421.  
  2422. IMHO apple needs to extend the FOND resource to include a table which maps its
  2423. glyphs to an international standard reference such as UNICODE.  An explicit
  2424. table would be required for dingbat like fonts, but 'normal' fonts could imply a
  2425. common table in the script resources (some scripts would have alternate script
  2426. tables-eg Arabic, Hebrew, others would have multiple script tables-eg Chinese,
  2427. Japanese, Korean).
  2428.  
  2429. The polyglot developer has to memorize IM 6 ch 14 and 15.  Also the
  2430. scriptmanager chapter in IM 5.  It has taken me the better part of a year to
  2431. sort out the scriptmanager, and I probably havnt got it completely right yet, so
  2432. I can synpathize with your confusion and (presumed) frustration.  If you stay
  2433. with TE, use SANE for numeric laundering (as in CIntegerText), and develop only
  2434. for system 7 (so that you can use the new tokenization stuff for parseing), you
  2435. can try to be polyglot capable.
  2436.  
  2437. But you still have to be carefull.  Consider the (common) problem of displaying
  2438. text in an area which is too narrow for it (eg in a list or in a pop-ups static
  2439. display).  You have to determine what portion of the text to omit, and then need
  2440. a non-idiomatic way of showing the abbreviation.  The eurocentric idiom is to
  2441. use an elipsis (...), but that character is not always $C9 (in japanese it is
  2442. $FF)!  Simply building a default window name requires knowledge of the language,
  2443. '1 - Document' is quite different from 'Document - 1', so although one can
  2444. externalize *all* of ones text constants (painful tho that is), one also must
  2445. consider the implications of all concatenation operations.
  2446.  
  2447. You will also have to get a hold of a developers CD-rom, and enlarge your
  2448. testing to include a L->R script, complex script, and a double byte script.
  2449.  
  2450. Arabic serves for both L->R and complex, and Kanji-Talk (with GomTalk cludge for
  2451. system 7), covers the Double byte stuff.
  2452.  
  2453. IM-6 implied that system 7 would be released with a polyglot capability,
  2454. unfortunately, that has yet to materialize, so you will need to have multiple
  2455. system folders on your HD(s).
  2456.  
  2457. User initiated character manipulation is covered by TCL/TE.  Program initiated
  2458. character manipulation needs to emulate what TCL does, and you need to examine
  2459. the code of CEditText and CTextEditTask to clarify the issues.  Faking arrow key
  2460. hits might be ok localy, but it is a bit cludgy for long moves.  The Charbyte
  2461. function defends you against the vageries of 2xbyte chars, but you need other
  2462. defenses for mixed direction support, and that is a weak spot for me, so I dare
  2463. not say more.
  2464.  
  2465. Bueno fortune,
  2466.  
  2467. Dana S Emery <de19@umail.umd.edu>
  2468.  
  2469. 
  2470. 
  2471. Path: ucivax!gateway
  2472. From: phils@chaos.cs.brandeis.edu (Phil Shapiro)
  2473. Subject: Optimum THINK C partition size?
  2474. Message-ID: <9207241153.AA11186@chaos.cs.brandeis.edu>
  2475. In-Reply-To: Bob Miller's message of 23 Jul 92 18:25:41 GMT <9207231825.AA29859@imagine.convex.com>
  2476. Newsgroups: fa.think-c
  2477. Lines: 18
  2478. Date: 24 Jul 92 11:53:24 GMT
  2479.  
  2480. >>>>> On 23 Jul 92 18:25:41 GMT, Bob Miller <bobm@imagine.convex.com> said:
  2481.  
  2482. >> During compilation, (almost) all data structures will be allocated
  2483. >> from multi-finder temporary memory, and THINK C will use its own
  2484. >> heap only as a last resort.
  2485.  
  2486.  > How about the compiler and linker code?  Are they in separate code
  2487.  > segments that get purged when they aren't in use?  How big are they?
  2488.  
  2489. The compiler itself is about three segments worth of code (including
  2490. the optimizer), and the linker is about one. They're purged when
  2491. they're not in use.
  2492.  
  2493.     -phil
  2494. ----
  2495.    Phil Shapiro                                   Software Engineer
  2496.    Language Products Group                     Symantec Corporation
  2497.            Internet: phils@cs.brandeis.edu
  2498. 
  2499. 
  2500. Path: ucivax!gateway
  2501. From: walshag@hermes.bc.edu (WALSHAG)
  2502. Subject: RE: QuickTime headers
  2503. Message-ID: <9207240822.aa18879@q2.ics.uci.edu>
  2504. Newsgroups: fa.think-c
  2505. Lines: 18
  2506. Date: 24 Jul 92 15:22:40 GMT
  2507.  
  2508. > In my THINK C 5.02 package is a file called StandardFile.h.
  2509. > This does not have the declarations for the QuickTime Preview stuff.
  2510. > Where do I get this from?  It was not on my QuickTime CD-ROM, nor
  2511. > was it incl. with the THINK updaters.
  2512. >Where can I get this, as it has come time to compile my application,
  2513. > and I cant do it without the correct StandardFile.h header file!!!
  2514.  
  2515. David,
  2516.  
  2517. The call for previewing under System 7 is StandardGetFilePreview().
  2518. Under System 6 use SFGetFilePreview().  The header file for both these routines
  2519. is "ImageCompression.h", which should be on the QuickTime CDROM for developers.
  2520.  They should also be available via anonymous FTP to Apple's site
  2521. (ftp.apple.com).
  2522.  
  2523. Hope this helps,
  2524. Aaron Walsh
  2525. walshag@bcvms.bc.edu
  2526. 
  2527. 
  2528. Path: ucivax!gateway
  2529. From: Rich_Watts@dgc.ceo.dg.com
  2530. Subject: Subscribe
  2531. Message-ID: <9207271505.AG00025@rtp41.rtp.dg.com>
  2532. Newsgroups: fa.think-c
  2533. Lines: 9
  2534. Date: 27 Jul 92 14:06:52 GMT
  2535.  
  2536.  
  2537. Hello,
  2538. I would like to be added to the list, if possible.
  2539. .
  2540. Rich Watts@dgc.ceo.dg.com
  2541. Could you tell me how often the newsletters are posted?
  2542.  
  2543.  
  2544.  
  2545. 
  2546. 
  2547. Path: ucivax!gateway
  2548. From: umdenbo0@ccu.umanitoba.ca ("David A. Denboer")
  2549. Subject: Macintosh C PRogramming Primer Ch6
  2550. Message-ID: <9207290115.AA11089@ccu.UManitoba.CA>
  2551. Newsgroups: fa.think-c
  2552. Lines: 14
  2553. Date: 29 Jul 92 01:15:34 GMT
  2554.  
  2555. Has anyone got the program "Reminder" in chapter 6 to work?
  2556. I am using an SE Sys7.0 Tuner 1.1.1 4mb RAM...
  2557. It stops compiling here:
  2558. if (reminder->launch = GetCtlValue((ControlHandle)itemHandle))
  2559.     reminder->notify.nmResp = &LaunchResponse;
  2560. With an error : Pointer types don't match(reminder->notify......)
  2561.  
  2562. Is there a typo in the book?
  2563.  
  2564. Any information would be useful,
  2565. David A. denBoer
  2566. umdenbo0@CCU.UManitoba.CA
  2567. Musi Computer Products
  2568. Macintosh Users Show Intelligence
  2569. 
  2570. 
  2571. Path: ucivax!gateway
  2572. From: jimlynch@netcom.com (Jim Lynch)
  2573. Subject: Hope this helps everyone...
  2574. Message-ID: <9207291631.AA15783@netcom.netcom.com>
  2575. Newsgroups: fa.think-c
  2576. Lines: 54
  2577. Date: 29 Jul 92 16:31:34 GMT
  2578.  
  2579. David said:
  2580. >>>>>
  2581. Has anyone got the program "Reminder" in chapter 6 to work?
  2582. I am using an SE Sys7.0 Tuner 1.1.1 4mb RAM...
  2583. It stops compiling here:
  2584. if (reminder->launch = GetCtlValue((ControlHandle)itemHandle))
  2585.         reminder->notify.nmResp = &LaunchResponse;
  2586. With an error : Pointer types don't match(reminder->notify......)
  2587.  
  2588. Is there a typo in the book?
  2589.  
  2590. Any information would be useful,
  2591. David A. denBoer
  2592. <<<<<
  2593.  
  2594. I am posting this on the list because I believe that the issue of type
  2595. mismatching in pointer assignments in Think C 5.x is an issue that most
  2596. on the list will need to with.
  2597.  
  2598. Are you using Think C 4.0 or 5.0? Note that the examples in Dave Mark's
  2599. "Macintosh C Programming Primer Vol. 1" use Think C 4.0 (Well, I'll hedge
  2600. the bet by saying that MY copy of it has Think C 4.0 examples)
  2601.  
  2602. Other than that, check the pertinant header files: find out exactly
  2603. what Think C is considering a mismatch. The most times I've found pointer type
  2604. mismatches is between short and int types.
  2605.  
  2606. In order for the think-c group to say more, you need to show the definitions or
  2607. declarations of LaunchResponse and those of reminder. You can look at those
  2608. too; chances are you'll find the mismatch right away.
  2609.  
  2610. If you're using Think C 5 and depending on how the preferences and language
  2611. settings are, the compiler will exact tighter restrictions on type matching.
  2612. One area is that of function prototypes: if you 'Require Prototypes' and
  2613. you check the box that tells the compiler to check pointer types, the pointer
  2614. types must match exactly. In order for them to match, they must have identical
  2615. function prototype definitions.
  2616.  
  2617. In MacLand, some functional types are defined as a 'ProcPtr' which is
  2618. supposed to cover all cases of pointers to procedures and functions. In C,
  2619. the function prototype goes to specify the pointer type: pointers to
  2620. functions that have different prototypes are considered to have different
  2621. pointer types.
  2622.  
  2623. The solution here is to use a typecast on the part of the pointer assignment
  2624. to the right of the assignment operator ('=' in this case). Unfortunately,
  2625. I don't have the definition/declaration of the data in David's example, so I
  2626. cannot comment further on that.
  2627.  
  2628. Realise this also becomes an issue when moving code from Think C 4.0 to 5.0.
  2629.  
  2630. I hope this helps.
  2631.  
  2632. -Jim
  2633. 
  2634. 
  2635. Path: ucivax!gateway
  2636. From: fleabag@athena.mit.edu
  2637. Subject: replacing StdTxMeas
  2638. Message-ID: <9207291945.AA03924@e40-008-8.MIT.EDU>
  2639. Newsgroups: fa.think-c
  2640. Lines: 82
  2641. Date: 29 Jul 92 19:46:14 GMT
  2642.  
  2643.  
  2644.  
  2645. hello folks,
  2646.  
  2647. i'm having a problem with replacing quickDraw text-measuring procs.
  2648. my app needs for all TABs to be drawn at exactly the same width,
  2649. regardless of font.  my only solution is to replace the StdText()
  2650. and StdTxMeas() procs with simple versions which only intercept
  2651. tab characters.
  2652.  
  2653. well, most of the below code works, except the MyTextMeasure() code
  2654. when the font selected is not a "RealFont" (ie, when the user doesn't
  2655. have that font size installed.)
  2656.  
  2657. Any clues, or other ideas??
  2658.  
  2659. thanks,
  2660. :jeff bellsey
  2661. fleabag@athena.mit.edu
  2662.  
  2663. ==================================
  2664.  
  2665.  
  2666. void DrawTab()
  2667. {
  2668.     Move ( tabPixelWidth, 0 );
  2669. }
  2670.  
  2671. pascal void MyDrawText (short    bytes, Ptr textBuf, Point numer, Point denom)
  2672. {
  2673.     short        count = 0;
  2674.  
  2675.     for ( count = 0; count < bytes; ++count )
  2676.     {
  2677.         if ( *((char*)textBuf + count) == TAB )
  2678.             DrawTab();
  2679.         else
  2680.             StdText ( 1, textBuf + count, numer, denom );
  2681.     }
  2682. }
  2683.  
  2684. short    MeasureTab(short num, short denom)
  2685. {
  2686.     return (short)(tabPixelWidth * (double)denom/(double)num + 0.5);
  2687. }
  2688.  
  2689. pascal short MyMeasureText (short bytes, Ptr textBuf,
  2690.                         Point *numer, Point *denom, FontInfo *fInfo)
  2691. {
  2692.     char    tabChar = '\t';
  2693.     short    retVal = 0,
  2694.                 newTabWidth, oldTabWidth, tabCount, i;
  2695.     Point    oldNum, oldDen;
  2696.     FontInfo    oldFInfo;
  2697.  
  2698.     retVal = StdTxMeas ( bytes, textBuf, numer, denom, fInfo );
  2699.  
  2700.     if ( bytes > 0 )
  2701.     {
  2702.         tabCount = 0;
  2703.  
  2704.         for ( i = 0; i < bytes; ++i)
  2705.             if ( *(textBuf+i) == tabChar )
  2706.                 tabCount++;
  2707.  
  2708.         if ( tabCount > 0 )
  2709.         {
  2710.             oldNum    = *numer;
  2711.             oldDen    = *denom;
  2712.             oldFInfo    = *fInfo;
  2713.  
  2714.             oldTabWidth = StdTxMeas( 1, &tabChar, numer, denom, &oldFInfo);
  2715.             newTabWidth = MeasureTab(oldNum.h, oldDen.h);
  2716.             retVal += (newTabWidth - oldTabWidth) * tabCount;
  2717.             if ( fInfo->widMax < newTabWidth )
  2718.                 fInfo->widMax = newTabWidth;
  2719.         }
  2720.     }
  2721.  
  2722.     return retVal;
  2723. }
  2724.  
  2725. 
  2726. 
  2727. Path: ucivax!gateway
  2728. From: C2MXBAR@fre.towson.edu (AARON BARNETT)
  2729. Subject: cursors
  2730. Message-ID: <01GMZFNWQMC291WK6L@TOE.TOWSON.EDU>
  2731. Content-transfer-encoding: 7BIT
  2732. MIME-version: 1.0
  2733. Newsgroups: fa.think-c
  2734. X-VMS-To: TOE::IN%"think-c@ics.uci.edu"
  2735. Lines: 9
  2736. Date: 30 Jul 92 13:05:07 GMT
  2737. X-Envelope-to: think-c@ics.uci.edu
  2738.  
  2739. Hello,
  2740.     I'm changing my cursor to a custom one(color) when it's over
  2741. my window, and theoretically back when its not.  If you didn't guess,
  2742. it doesn't change back.  this only happens when I'm useing clickchange.
  2743. with clickchange off, i can do a SetCursor(&arrow), no problem. So i
  2744. guess the question is since I cannot assume that the user is user the
  2745. standard arrow, how do i know what the previous cursor was.
  2746.  
  2747. aaron
  2748. 
  2749. 
  2750. Path: ucivax!gateway
  2751. From: zkessin@chaos.cs.brandeis.edu (Zach Kessin)
  2752. Subject: unix like pipes
  2753. Message-ID: <9207301550.AA29568@chaos.cs.brandeis.edu>
  2754. Newsgroups: fa.think-c
  2755. Lines: 32
  2756. Date: 30 Jul 92 15:51:08 GMT
  2757.  
  2758.  
  2759. I am trying to figure out how to do a unix like pipe for some programs
  2760. that I am porting to the mac.
  2761. what I would like to do is something like this:
  2762. PROG 1
  2763.  
  2764. ...
  2765. fprintf(myPipe, ...);
  2766. ...
  2767.  
  2768.  
  2769. PROG2
  2770.  
  2771. ...
  2772. fscanf(myPipe,...)
  2773. ...
  2774.  
  2775. I am trying to figure out how to do this best on the mac (sys 7)
  2776. I think that ADSP might work well, will that work between 2 apps on
  2777. one mac? Or I could use a Shared file, but that did not seem as good?
  2778.  
  2779. Any Ideas?
  2780.  
  2781. thanks in advance
  2782.  
  2783. --Zach  Zkessin@chaos.cs.brandeis.edu
  2784.  
  2785. There are worlds out there where the sky is burning.  The sea's
  2786. asleep, and the rivers dream. People made of smoke and cities made of sound.
  2787. Somewhere there's danger. Somewhere there's injustice.
  2788. Somewhere else the tea's getting cold. Come on Ace, we've got work to do."
  2789.                                     -The Doctor "Survival"
  2790. 
  2791. 
  2792. Path: ucivax!gateway
  2793. From: TPZ4@icnucevm.cnuce.cnr.it (Rodolfo Cardarelli)
  2794. Subject: Shopping suggestion
  2795. Message-ID: <9207301006.aa22092@q2.ics.uci.edu>
  2796. Newsgroups: fa.think-c
  2797. Lines: 9
  2798. Date: 30 Jul 92 17:06:54 GMT
  2799.  
  2800. I'm going to spend some weeks in the States this summer, and it could be
  2801. the right time to buy Mac products like books and software for C programming.
  2802. Do you people out there have any suggestions about packages or books that you
  2803. consider valuable?
  2804. What do you think about MacApp?
  2805. Any suggestion welcome|
  2806.  
  2807. Rodolfo Cardarelli
  2808. TPZ4@ICNUCEVM.CNUCE.CNR.IT
  2809. 
  2810. 
  2811. Path: ucivax!gateway
  2812. From: king@acpub.duke.edu (King Rhoton)
  2813. Subject: Re:  Shopping suggestion
  2814. Message-ID: <9207301842.AA17718@raphael.acpub.duke.edu>
  2815. Newsgroups: fa.think-c
  2816. Lines: 3
  2817. Date: 30 Jul 92 18:42:35 GMT
  2818.  
  2819. Remember that MacApp will be phased out in favor of Bedrock.  I forget what the
  2820. timing will be.
  2821. King
  2822. 
  2823. 
  2824. Path: ucivax!gateway
  2825. From: P30WCC9%NIU.bitnet@uicvm.uic.edu (WES COVALT)
  2826. Subject: Jim Lynch (?)
  2827. Message-ID: <9207301246.aa05028@q2.ics.uci.edu>
  2828. Newsgroups: fa.think-c
  2829. Lines: 5
  2830. Date: 30 Jul 92 19:46:47 GMT
  2831.  
  2832. Jim,
  2833.     I tried to subscibe to your Think-C list through the List Server
  2834. only to discover it's not on the list.  Can you please place me on
  2835. the think-c list?
  2836. Wes Covalt P30WCC9@NIU
  2837. 
  2838. 
  2839. Path: ucivax!gateway
  2840. From: andre@cs.pitt.edu (Andre "A Mac Plumber" Srinivasan)
  2841. Subject: trouble creating a bitmap from a pixmap
  2842. Message-ID: <9207302318.AA24789@flash.cs.pitt.edu>
  2843. Newsgroups: fa.think-c
  2844. Lines: 34
  2845. Date: 30 Jul 92 23:19:08 GMT
  2846.  
  2847.  
  2848. i would like to take a pixmap and convert it into a solid bitmap to
  2849. use as a mask for copymask.  i originally thought i could simply
  2850. copybits the pixmap to the bitmap, but this didn't work; the object is
  2851. an arrow with a black outline and a light gray interior, the black
  2852. outline was in the bitmap, but the interior of the arrow was white.
  2853.  
  2854. so i tried adding a search proc thinking i could map all colors except
  2855. for white into black.  this didn't work - i got the same results.
  2856.  
  2857. my current effort involves creating a temporary pixmap, copying the
  2858. original pixmap into my temporary while mapping all non-white colors
  2859. to black, and then copying the temporary pixmap into a bitmap.
  2860.  
  2861. as i watch the code execute, the search proc only gets called for
  2862. twice: once for black and then once for white.  i tried a search proc
  2863. that modifies the rgb value it's passed (returning FALSE) as well as a
  2864. search proc that sets the color table index and returns TRUE.  in both
  2865. of these cases i end up with a pixmap that is the same as the
  2866. original.
  2867.  
  2868. i don't get it.  the only thing i can think of now is that my gworld
  2869. needs to point at the on screen port while i do all of this (right
  2870. now, the current gworld happens to pointing at an offscreen gworld).
  2871.  
  2872. any help would be appreciated.  thanks.
  2873.  
  2874.                                 -andre.
  2875.  
  2876. ---
  2877. Andre Srinivasan  :
  2878. 734 LRDC          : "Well scratch my back with a hacksaw."
  2879. U. of Pittsburgh  :                    - Mike Lange
  2880. andre@cs.pitt.edu :
  2881. 
  2882. 
  2883. Path: ucivax!gateway
  2884. From: umdenbo0@ccu.umanitoba.ca ("David A. Denboer")
  2885. Subject: Modeless Dialog Question (ResEdit)
  2886. Message-ID: <9207310528.AA23129@ccu.UManitoba.CA>
  2887. X-Mailer: ELM [version 2.3 PL11]
  2888. Newsgroups: fa.think-c
  2889. Lines: 27
  2890. Date: 31 Jul 92 05:28:55 GMT
  2891.  
  2892. Using ResEdit 2.1.1, I create a resource 'DLOG' (and corresponding 'DITL')
  2893. I specify the Dialog's window type (in ResEdit) to be a 'NoGrowDocProc',
  2894. without a close box (no zoom, no scrolls, no grow)... In my program, I use
  2895. the following code to put my dialog on the screen :
  2896. {
  2897.     if (gModelessDialog == NIL) {
  2898.         gModelessDialog = GetNewDialog(rEnterDialog,NIL,(WindowPtr) -1);
  2899.     }
  2900.  
  2901.     SelectWindow(gModelessDialog);
  2902.     SetPort(gModelessDialog);
  2903.     ShowWindow(gModelessDialog);
  2904. }
  2905.  
  2906. This works fine in putting the dialog on the screen, but I get the wrong
  2907. window type on the screen (I get a 'ZoomDocProc')
  2908.  
  2909. The same resource file in a Pascal program works fine, but I cannot get it
  2910. to work in C.
  2911.  
  2912. Any suggestions?
  2913. David A. denBoer
  2914. umdenbo0@CCU.UManitoba.CA
  2915. Musi Computer Products
  2916. Macintosh Users Show Intelligence
  2917.  
  2918.  
  2919. 
  2920. 
  2921. Path: ucivax!gateway
  2922. From: wadew@ducvax.auburn.edu (Wade Williams)
  2923. Subject: (none)
  2924. Message-ID: <9207311913.AA00789@accs.duc.auburn.edu>
  2925. Newsgroups: fa.think-c
  2926. Lines: 38
  2927. Date: 31 Jul 92 19:12:06 GMT
  2928.  
  2929. This message is being cross-posted to several groups as we are in a crisis
  2930. situation.  To those who receive multiple copies of this message, my
  2931. apologies.  To those groups to whom this does not directly apply, my
  2932. apologies.  However, I felt the need for the maximum number of people
  2933. possible to read this message and I felt that readers of a variety of
  2934. different lists might be able to provide a solution, even if it did not
  2935. directly apply to the list.
  2936.  
  2937. So, the problem is:
  2938.  
  2939. Within the next week, we're supposed to install our first System-7 lab on
  2940. campus.  However, we hide our System Folder and rebuild the hard disk each
  2941. day using RevRdist.
  2942.  
  2943. The problem is, when the System Folder is hidden, none of the items in the
  2944. Apple Menu Items folder appear in the Apple Menu (only the "About this
  2945. Macintosh" choice appears).
  2946.  
  2947. I've tried using aliases, keeping the System Folder visible and putting it
  2948. inside of another invisible folder, and everything else I can think of.
  2949.  
  2950. Some have proposed just putting those items (Chooser, calculator, etc) on
  2951. the desktop.  That would not work because they would get trashed.  Also,
  2952. because RevRdist rebuilds our hard disks each morning, we cannot use
  2953. security software such as FolderBolt or FileGuard.
  2954.  
  2955. This problem may seem trivial, but it certainly is not.  I need a
  2956. satisfactory solution to this problem.  By the way, going back to System 6
  2957. is not an acceptable solution as many of our machines will only run System
  2958. 7.
  2959.  
  2960. Again, I apologize for the cross-posting, but I hope someone will be able
  2961. to help.  Thank you.
  2962.  
  2963. Wade Williams
  2964. Academic Computing Services, Auburn University
  2965. wadew@ducvax.auburn.edu
  2966.  
  2967. 
  2968. 
  2969. Path: ucivax!gateway
  2970. From: tj@cs.ucla.edu (Tom Johnson)
  2971. Subject: Smooth Animation & GNE/WNE - Is it possible?
  2972. Message-ID: <9207312057.AA23327@kona.cs.ucla.edu>
  2973. X-Mailer: ELM [version 2.3 PL11]
  2974. Newsgroups: fa.think-c
  2975. Lines: 41
  2976. Date: 31 Jul 92 20:57:33 GMT
  2977.  
  2978. I'm thinking about writing a game, so I decided I'd play around a bit and
  2979. try to get some nice fast and smooth animation running just to see how to
  2980. do it.  Nothing fancy, just a box bouncing around in a window on the screen.
  2981. I've got the drawing sync'd to a VBL task and everything works great in a
  2982. situation like this:
  2983.  
  2984.   do {
  2985.         DrawNextFrame();
  2986.      } while (!Button());
  2987.  
  2988. of course.  But when I put it into a real event loop:
  2989.   do {
  2990.         MainIdle();
  2991.         gotEvent = WaitNextEvent(everyEvent, &theEvent, 0,nil);
  2992.         if (gotEvent)
  2993.                 HandleEvent(&theEvent);
  2994.       } while (gQuitApplication != true);
  2995.  
  2996. I get all sorts of little starts/stops/pauses in the animation, as the mac
  2997. gives time to background processes.  And it's certainly not acceptable for
  2998. a fast arcade-style game.
  2999.  
  3000. How do other game authors handle it?  Do you not give time to bkgnd processes?
  3001. Just let downloads timeout?  Or is there some simple idea that's gone by
  3002. me completely?
  3003.  
  3004.  
  3005. Question 2:  I've given up on getting enough speed from CopyBits and have
  3006. decided that I'm willing to take a few risks and write directly to the
  3007. screen.  I found the sample code in the FAQ for setting pixels.  Does anyone
  3008. have some utility routines they might be willing to share to handle other
  3009. tasks?  (ie drawing Icl's, etc...).
  3010.  
  3011. This is just a little throw away freeware
  3012. game, so I'm trying to get as much done as I can as quickly as possible. Has
  3013. anyone ever written a sample arcade game and given away the source? Something
  3014. I could base mine upon?
  3015.  
  3016. Thanks-
  3017.   Tom
  3018.  
  3019. 
  3020.